OAuth Flow #

Note that the traditional Oauth flow is used for Authorization of data across applications, not Authentication of users. OpenID Connect is a layer on top of OAuth that allows for authentication of users.

The oauth process is as follows:

  1. The client makes a request to the oauth server and the user authorizes permissions.
  2. Upon authorization, the oauth server (e.g. Facebook, Google), redirects to a specified url with a code as a query param. I believe you can do this on the frontend with postmessage as the redirect url.
  3. The client then exchanges the code with the Oauth server for an access token.
  4. This access token can then be used to pass to an application backend like django-rest-framework-social-auth2 for authentication/user creation

Steps 2 and 3 may be blurred together (in the implicit flow), but if possible it’s better to keep these separate

OpenID Connect (OIDC) #

Single-Sign On (SSO) #

Service Provider Initiated (SP-initiated) #

Identity Provider Initiated (IdP-initiated) #

SSO Protocols #

SAML #

JWTs (Json Web Tokens) #

Passwordless Auth #

Authenticator Apps #