feat: add Casdoor single sign-on (#4222)

This commit is contained in:
longxu0509
2023-04-26 16:01:40 +08:00
committed by GitHub
parent 9d55ad3af6
commit 2bae8e129e
3 changed files with 24 additions and 5 deletions

View File

@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"net/url"
"strings"
"github.com/alist-org/alist/v3/internal/conf"
"github.com/alist-org/alist/v3/internal/db"
@ -47,6 +48,11 @@ func SSOLoginRedirect(c *gin.Context) {
urlValues.Add("scope", "openid")
urlValues.Add("prompt", "consent")
urlValues.Add("response_type", "code")
case "Casdoor":
endpoint := strings.TrimSuffix(setting.GetStr(conf.SSOEndpointName), "/")
r_url = endpoint + "/login/oauth/authorize?"
urlValues.Add("scope", "read")
urlValues.Add("state", endpoint)
default:
common.ErrorStrResp(c, "invalid platform", 400)
return
@ -94,6 +100,11 @@ func SSOLoginCallback(c *gin.Context) {
url2 = "https://api.dingtalk.com/v1.0/contact/users/me"
authstring = "authCode"
idstring = "unionId"
case "Casdoor":
endpoint := strings.TrimSuffix(setting.GetStr(conf.SSOEndpointName), "/")
url1 = endpoint + "/api/login/oauth/access_token"
url2 = endpoint + "/account"
authstring = "code"
default:
common.ErrorStrResp(c, "invalid platform", 400)
return