Browse Source

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

Daniel 1 year ago
parent
commit
c0a10ab98c
1 changed files with 11 additions and 1 deletions
  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)
 	if authHeader := c.GetHeader("Authorization"); "" != authHeader {
+		var token string
 		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 {
 				c.Next()
 				return