mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
@@ -35,6 +35,24 @@ The GraphQL API can be queried with a POST request to `/api/graphql`. There is a
|
||||
|
||||
The REST API can be queried at `/api/v1`. An interactive Swagger API explorer is available at `/api/swagger-ui`.
|
||||
|
||||
### Tracker client authorization
|
||||
#### OAuth
|
||||
Since the url of a Suwayomi-Server is not known, it is not possible to redirect directly to the client.<br/>
|
||||
Thus, to provide tracker support via oauth, the tracker clients redirect to the [suwayomi website](https://suwayomi.org/)
|
||||
and there the actual redirection to the client takes place.
|
||||
|
||||
When implementing the login process in your client you have to make sure to follow some preconditions:
|
||||
|
||||
To be able to redirect to the client you have to attach a `state` object to the query of the auth url
|
||||
- this `state` object has to have a `redirectUrl` which points to the client route at which you want to handle the auth result
|
||||
- besides the `redirectUrl` you can pass any information you require to handle the result (e.g. the server `id` of the tracker client)
|
||||
- example URL for AniList: `https://anilist.co/api/v2/oauth/authorize?client_id=ID&response_type=token&state={ redirectUrl: "http://localhost:4567/handle/oauth/result", trackerId: 1, anyOtherInfo: "your client requires" }`
|
||||
|
||||
Once the permission has been granted, you will get redirected to the client at the provided route (`redirectUrl`).<br/>
|
||||
- Example URL (decoded) for AniList: `http://localhost:4567/tracker/login?access_token=TOKEN&token_type=Bearer&expires_in=31622400&state={ redirectUrl: "http://localhost:4567/handle/oauth/result", trackerId: 1, anyOtherInfo: "your client requires" }`).<br/>
|
||||
|
||||
Finally, to finish the login process, you just have to pass this URL to the server as the `callbackUrl`.
|
||||
|
||||
## Why a web app?
|
||||
This structure is chosen to
|
||||
- Achieve the maximum multi-platform-ness
|
||||
|
||||
Reference in New Issue
Block a user