瀏覽代碼

:art: Improve API Token authentication https://github.com/siyuan-note/siyuan/issues/10792

Daniel 1 年之前
父節點
當前提交
c0a10ab98c
共有 1 個文件被更改,包括 11 次插入1 次删除
  1. 11 1
      kernel/model/session.go

+ 11 - 1
kernel/model/session.go

@@ -235,8 +235,18 @@ func CheckAuth(c *gin.Context) {
 
 
 	// 通过 API token (header: Authorization)
 	// 通过 API token (header: Authorization)
 	if authHeader := c.GetHeader("Authorization"); "" != authHeader {
 	if authHeader := c.GetHeader("Authorization"); "" != authHeader {
+		var token string
 		if strings.HasPrefix(authHeader, "Token ") {
 		if strings.HasPrefix(authHeader, "Token ") {
-			token := strings.TrimPrefix(authHeader, "Token ")
+			token = strings.TrimPrefix(authHeader, "Token ")
+		} else if strings.HasPrefix(authHeader, "token ") {
+			token = strings.TrimPrefix(authHeader, "token ")
+		} else if strings.HasPrefix(authHeader, "Bearer ") {
+			token = strings.TrimPrefix(authHeader, "Bearer ")
+		} else if strings.HasPrefix(authHeader, "bearer ") {
+			token = strings.TrimPrefix(authHeader, "bearer ")
+		}
+
+		if "" != token {
 			if Conf.Api.Token == token {
 			if Conf.Api.Token == token {
 				c.Next()
 				c.Next()
 				return
 				return