
This is a flat (without history) import of (some of) the content from our markdown module. We've imported this without history because the repo contains our blog posts and showcases posts content prior to porting them to strapi. Since this contains many images, it would balloon the size of this repo to import the full history. Instead, please refer to the history of the (archived) markdown repo at: https://github.com/freesewing/markdown
54 lines
1.2 KiB
Markdown
54 lines
1.2 KiB
Markdown
---
|
|
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.
|
|
|