30 lines
831 B
Go
30 lines
831 B
Go
|
package middleware
|
|||
|
|
|||
|
import (
|
|||
|
"yitao/config"
|
|||
|
|
|||
|
"github.com/iris-contrib/middleware/jwt"
|
|||
|
)
|
|||
|
|
|||
|
var JwtMiddleware *jwt.Middleware
|
|||
|
|
|||
|
func init() {
|
|||
|
JwtMiddleware = jwt.New(jwt.Config{
|
|||
|
// Extractor属性可以选择从什么地方获取jwt进行验证,默认从http请求的header中的Authorization字段提取,也可指定为请求参数中的某个字段
|
|||
|
|
|||
|
// 从请求参数token中提取
|
|||
|
// Extractor: jwt.FromParameter("token"),
|
|||
|
|
|||
|
// 从请求头的Authorization字段中提取,这个是默认值
|
|||
|
Extractor: jwt.FromAuthHeader,
|
|||
|
|
|||
|
// 设置一个函数返回秘钥,关键在于return []byte("这里设置秘钥")
|
|||
|
ValidationKeyGetter: func(token *jwt.Token) (interface{}, error) {
|
|||
|
return []byte(config.GetConfig().JwtSecret), nil
|
|||
|
},
|
|||
|
|
|||
|
// 设置一个加密方法
|
|||
|
SigningMethod: jwt.SigningMethodHS256,
|
|||
|
})
|
|||
|
}
|