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"
|
2022-04-06 13:54:48 +08:00
|
|
|
"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
|
|
|
|
2022-04-06 13:54:48 +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
|
2022-04-06 13:54:48 +08:00
|
|
|
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
|
|
|
}
|
|
|
|
}
|