Identity/AttachedServices/KeyServerProtocol: Difference between revisions

Jump to navigation Jump to search
m
Line 959: Line 959:
* POST /account/create (email,srpV,srpSalt) -> ok (server sends verification email)
* POST /account/create (email,srpV,srpSalt) -> ok (server sends verification email)
** creates a user account
** creates a user account
* POST /session/auth/start (email) -> loginSrpToken,SRP stuff
* GET /account/devices [sessionToken] () -> list of devices
* POST /session/auth/finish (loginSrpToken,SRP stuff,deviceInfo) -> keyFetchToken, sessionToken
* GET /account/keys [keyFetchToken,needs-verf] () -> kA/wrap(kB)
* GET /session/status [authed] () -> ok, or error
** single-use, only if email is verified, encrypted results
* POST /session/destroy [authed] () -> ok
* POST /account/reset [authed+encrypted by accountResetToken] (wrap(kB),srpV,srpSalt) -> ok
** single-use, does not require email to be verified, revoke all tokens for account, send notification email to user
* POST /account/delete [authToken] () -> ok, account deleted
* POST /auth/start (email) -> srpToken,SRP stuff
* POST /auth/finish (srpToken,SRP stuff,deviceInfo) -> authToken
* POST /session/create [authToken] () -> keyFetchToken, sessionToken
* POST /session/destroy [sessionToken] () -> ok
** for detaching a device, destroy all tokens
** for detaching a device, destroy all tokens
* POST /certificate/sign [authed] (pubkey) -> cert
* POST /recovery_email/status [sessionToken] () -> "verified" status of email
** only if primary recovery method verified
* GET /account/recovery_methods [authed] () -> list of recovery methods with verified status
** does not require verified-recovery-method
**  use "Accept: text/event-stream" header for server-sent-events; server will send "update" event with the new content of the resource any time it changes.
**  use "Accept: text/event-stream" header for server-sent-events; server will send "update" event with the new content of the resource any time it changes.
* POST /account/recovery_methods/send_code [authed] (recovery_method) -> ok
* POST /recovery_email/resend_code [sessionToken] () -> re-send verification email
* POST /account/recovery_methods/verify_code (code) -> ok
* POST /recovery_email/verify_code (code) -> set "verified" flag
** this code will come from a clickable link and is an unauthenticated endpoint
** this code will come from a clickable link and is an unauthenticated endpoint
** this could maybe take the recovery method if that would be helpful
** this could maybe take the recovery method if that would be helpful
** sets verified flag on recovery method
** sets verified flag on recovery method
* GET /account/keys [authed with keyFetchToken] () -> kA/wrap(kB)
* POST /certificate/sign [sessionToken,needs-verf] (pubkey) -> cert
** single-use, only if primary recovery method is verified, encrypted results
** only if recovery email is verified
* GET /account/devices [authed] () -> list of devices
* POST /password/change/start [authToken,needs-verf] () -> accountResetToken, keyFetchToken
* POST /password/change/auth/start [authed] () -> changePasswordSrpToken, SRP stuff
* POST /password/forgot/send_code () -> forgotPasswordToken
** requires that the email associated with the session is verified
* POST /password/change/auth/finish [authed] (changePasswordSrpToken, SRP stuff) -> keyFetchToken, accountResetToken
* POST /password/forgot/send_code (recovery method) -> forgotPasswordToken
** sends code to recovery method (email for now, maybe SMS later)
** sends code to recovery method (email for now, maybe SMS later)
** this is a short code, not a clickable link
** this is a short code, not a clickable link
* POST /password/forgot/verify_code (forgotPasswordToken, code) -> accountResetToken
* POST /password/forgot/resend_code (forgotPasswordToken) -> re-sends code
* POST /password/forgot/verify_code (forgotPasswordToken, code) -> accountResetToken
** sets verified flag on recovery method
** sets verified flag on recovery method
* POST /account/reset [authed+encrypted by accountResetToken] (wrap(kB),srpV,srpSalt) -> ok
** single-use, does not require a verified recovery method, revoke all tokens for account, send notification email to user
* POST /get_random_bytes
* POST /get_random_bytes


Confirmed users
471

edits

Navigation menu