source: Email address, mobile phone number, etc.
code: Verification code generated by verification service
- App requests confirmation of a particular
source. - Verification system generates
code - Verification system sends
codein verification email/sms/etc. - Verification encrypts and returns
code+source - App requests user input
codethat was sent tosource - User enters code into app input, form submitted with
source,code, and JWE - Verification system compares
sourceandcodesubmitted by form withsourceandcodeinside the JWE.
Request verification
- Generate security
code(simple string, i.e. 4 digit number) - Send email, sms, etc. containing
codetosource - Build JWE from a
source(email, phone) with thecode - Return JWE
Confirm verification
- Check JWE
source+codeVS payloadsource+code - Return signed JWT with
source(for external systems)