*** ## title: Oauth ## Oauth initialisation POST /oauth/init { 'provider': 'github', 'language': 'fr' } On success: 200 { 'state': '5d5132041ad3f369443f1d7b' } On failure: 400 * This triggers an Oauth flow * `provider` should be one of `google` or `github` * `language` should be one of the [configured language codes](https://github.com/freesewing/backend/blob/develop/src/config/index.js#L32) * The frontend will use the state value to initialize an Oauth session. We'll check the state value when we receive the Oauth callback at the backend ## Oauth callback GET /oauth/callback/from/:provider On success: Redirects to the frontend This is part of the Oauth flow. It fetches the user info from the Oauth provider. If it can't match it with a user, it will create a user account.\ In other words, this will handle both log in and sign up. The frontend redirect will contain a confirmation ID in the URL that we'll `POST` back in the next Oauth flow step. ## Oauth login POST /oauth/login { 'confirmation': '98e132041ad3f369443f1d3d' } On success: The account data On failure: 400 This is the last step of the Oauth process. It logs a user in.