Користувацький OAuth
Casdoor підтримує користувацькі провайдери. Однак, користувацькі провайдери повинні слідувати стандартному процесу 3-стороннього OAuth, і повернені значення Token URL
та UserInfo URL
повинні відповідати формату, визначеному Casdoor.
Щоб створити новий користувацький провайдер, перейдіть на сторінку провайдера Casdoor та виберіть "Custom" у полі Тип. Потім вам потрібно буде заповнити Client ID
, Client Secret
, Auth URL
, Scope
,Token URL
, UserInfo URL
та Favicon
.
Auth URL
- це адреса сторінки входу OAuth користувацького провайдера.Якщо ви заповните
https://door.casdoor.com/login/oauth/authorize
якAuth URL
, то, коли користувач увійде за допомогою цього користувацького провайдера, браузер спочатку перенаправить наhttps://door.casdoor.com/login/oauth/authorize?client_id={ClientID}&redirect_uri=https://{your-casdoor-hostname}/callback&state={State_generated_by_Casdoor}&response_type=code&scope={Scope}`
Після завершення авторизації користувацький провайдер повинен перенаправити на
https://{your-casdoor-hostname}/callback?code={code}
Після цього кроку Casdoor розпізнає параметр code в URL.
Scope
- це параметр області, який передається при доступі доAuth URL
, і ви повинні заповнити його відповідно до вимог користувацького провайдера.Token URL
- це API-кінцева точка для отримання accessToken.Отримавши код на попередньому кроці, Casdoor повинен використовувати його для отримання accessToken.
Якщо ви заповните
https://door.casdoor.com/api/login/oauth/access_token
якToken URL
, то Casdoor звернеться до нього за допомогою наступної командиcurl -X POST -u "{ClientID}:{ClientSecret}" --data-binary "code={code}&grant_type=authorization_code&redirect_uri=https://{your-casdoor-hostname}/callback" https://door.casdoor.com/api/login/oauth/access_token
Користувацький провайдер повинен повернути принаймні наступну інформацію:
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ixxxxxxxxxxxxxx",
"refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6xxxxxxxxxxxxxx",
"token_type": "Bearer",
"expires_in": 10080,
"scope": "openid profile email"
}UserInfo URL
- це API-кінцева точка для отримання інформації про користувача через accessToken.Якщо ви заповните
https://door.casdoor.com/api/userinfo
якUserInfo URL
, то Casdoor звернеться до нього за допомогою наступної командиcurl -X GET -H "Authorization: Bearer {accessToken}" https://door.casdoor.com/api/userinfo
Користувацький провайдер повинен повернути принаймні наступну інформацію:
{
"name": "admin",
"preferred_username": "Admin",
"email": "admin@example.com",
"picture": "https://casbin.org/img/casbin.svg"
}Favicon
- це URL логотипу користувацького провайдера.Цей логотип буде відображений на сторінці входу Casdoor разом з іншими сторонніми провайдерами входу.