自定义OAuth
Casdoor支持自定义提供商。 然而,自定义提供商必须遵循3-legged OAuth的标准流程,Token URL
和UserInfo URL
的返回值必须符合Casdoor指定的格式。
要创建一个新的自定义提供商,请导航到Casdoor的提供商页面,并在“类型”字段中选择“自定义”。 然后,您需要填写Client ID
、Client Secret
、Auth URL
、Scope
、Token URL
、UserInfo URL
和Favicon
。
Auth URL
是自定义提供商的 OAuth 登录页面地址。如果你在
Auth URL
中填写https://door.casdoor.com/login/oauth/authorize
,那么,当用户使用这个自定义提供者登录时,浏览器将首先重定向到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将会识别URL中的code参数。
Scope
是访问Auth URL
时携带的范围参数,您应根据自定义提供商的要求进行填写。Token URL
是获取accessToken的API端点。一旦你在前一步获取了代码,Casdoor应该使用它来获取accessToken。
如果你在
Token URL
中填入https://door.casdoor.com/api/login/oauth/access_token
,那么Casdoor将使用以下命令来访问它curl -X POST -u "{ClientID}:{ClientSecret}" --data-binary "code={code}&grant_type=authoritiation_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
是通过accessToken获取用户信息的API端点。如果你在
UserInfo URL
中填入https://door.casdoor.com/api/userinfo
,那么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的登录页面上显示。