1
0
Fork 0
freesewing/markdown/dev/reference/backend/oauth/en.md

53 lines
1.2 KiB
Markdown
Raw Normal View History

2021-10-17 17:34:55 +02:00
***
## title: Oauth
## Oauth initialisation
2021-10-17 17:34:55 +02:00
POST /oauth/init
{
'provider': 'github',
'language': 'fr'
}
On success:
2021-10-17 17:34:55 +02:00
200
{
'state': '5d5132041ad3f369443f1d7b'
}
On failure:
2021-10-17 17:34:55 +02:00
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
2021-10-17 17:34:55 +02:00
GET /oauth/callback/from/:provider
On success: Redirects to the frontend
2021-10-17 17:34:55 +02:00
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
2021-10-17 17:34:55 +02:00
POST /oauth/login
{
'confirmation': '98e132041ad3f369443f1d3d'
}
On success: The account data
On failure:
2021-10-17 17:34:55 +02:00
400
2021-10-17 17:34:55 +02:00
This is the last step of the Oauth process. It logs a user in.