# Dentity : OIDC Verification
Dentity has the following requirements for their verification uses
- Login with SMS
- Verification Types
- Possession of credential
- Sharing credential details
[Recorded video from meeting](https://grain.com/app/editor-invite/recording/efd27a9e-d226-44cf-9f01-750840153d16?token=NMxRRamIReZerG9hsmCf3raiDufCPZVtxFe8gd3D&referrer_id=33fd7c5f-b42a-4677-af1a-8ed8973d25ee)
## Login with SMS
Wallet holders should be able to login using their SMS as MFA provider. It is OK if this is only enabled only for US/Canada customers
#### Required Work
- **[feature]** Support SMS login
- **[server]** Integration with Twilio
- `AccountService.SignIn` support for SMS
- `WalletService.Send` support for SMS
- (optional) Add support for SMS in addition to Email associated with existing wallet
- (optional) Allow multiple emails or SMS associated with a wallet
- (optional) Support updating organization/wallet name
- (optional) Notify users by SMS or Email that they have received a new item/credential
- **[UI]** Twilio templates for Email notifications
- **[UX]** Twilio templates for SMS notifications
## Verification Types
Dentity has identified 2 verification workflows:
### Possession of credential
Verify if holder has credential, but don't reveal any subject details. This can be implemented by creating a proof that doesn't reveal anything in the `credentialSubject` field, but does reveal issuer, revocation status, schema, etc.
### Sharing credential details
Verify credential by revealing subject details with selective disclosure option. This can be implemented by creating a proof that asks the user to select which fields in the `credentialSubject` they want revealed.
#### Required Work
- OIDC Service
- **[authorize endpoint]** Support specifying required subject fields disclosure (any, none, etc)
- **[authorize endpoint]** Support selection of credentials by issuer (only supports template now)
- **[authorize endpoint]** Support UI hinting for login (sms, email, both, default, etc)
- Create proof reveal frame based on input parameters and field selections
- Support/verify organization names upon registration (this is already in)
- OIDC Web
- Login with SMS screen
- (optional) If UI hinting not specified, present screen for login with Email or SMS
- Credentail request screen for use case 1 (no field selection)
- Credentail request screen for use case 2, select credential and fields to disclose
- (optional) Support branding - this can be very simple to start with, by specifying logo and accent color, but it does require server endpoint and sdk support
### Questions
- What are the timelines for us to give to dentity?
#### OIDC Verifier Sample
- Setup the verifier ecosystem (in DEV environment)
- Create new ecosystem
- Create a sample template for a credential (citizenship card, vaccination, event ticket)
- Issue a credential to person with email A
- Setup a JS based example
- Integrate OIDC4VP flow using the ecosystem and template created above
- Should be pure client application, no backend
- Using the oidc ts library
As a user, I will arrive at verifier web site, and be able to present my credential in order to perform an action
Action = Login with Citizenship Card
`trinsic-id/server` will have `server` in `oidc-app-service`
sample client in `client` folder
{"metaMigratedAt":"2023-06-16T23:02:49.660Z","metaMigratedFrom":"Content","title":"Dentity : OIDC Verification","breaks":true,"contributors":"[{\"id\":\"1b4e43e9-a87f-4f8a-b4c9-06579f0b9a2a\",\"add\":741,\"del\":2},{\"id\":\"40d296f4-0349-472e-adf3-50fb21f82265\",\"add\":2773,\"del\":102}]"}