DriveLinked/pkg/middleware/verify.go

33 lines
659 B
Go
Raw Normal View History

2022-04-03 12:30:50 +08:00
package middleware
import (
"drive-linked/pkg/common"
2022-04-05 18:16:20 +08:00
"drive-linked/pkg/dto"
2022-04-03 12:30:50 +08:00
"github.com/kataras/iris/v12"
"strings"
2022-04-03 12:30:50 +08:00
)
func SignRequired(ctx iris.Context) {
auth := ctx.GetHeader("Authorization")
//TODO:更详细的判断,包括请求格式是否正确
2022-04-05 18:16:20 +08:00
// 取出Bearer后的内容
var tokenString string
if auths := strings.Split(auth, " "); len(auths) > 1 {
tokenString = auths[1]
} else {
ctx.Skip()
}
2022-04-05 18:16:20 +08:00
// 验证token
err := common.VerifyToken(tokenString)
2022-04-03 12:30:50 +08:00
if err == nil {
ctx.Values().Set("logged_in", true)
2022-04-05 18:16:20 +08:00
ctx.Next()
} else {
ctx.Values().Set("logged_in", false)
resp := dto.NewResponse(ctx)
resp.ErrUnauthorized()
2022-04-03 12:30:50 +08:00
}
}