This commit is contained in:
laodaming
2023-06-02 12:12:51 +08:00
parent 4df573bbc7
commit efd0f28d51
3 changed files with 28 additions and 17 deletions

View File

@@ -2,14 +2,15 @@ package auth
import (
"encoding/json"
"errors"
"github.com/golang-jwt/jwt"
"log"
"net/http"
"time"
)
type UserInfo struct {
UserId int64 `json:"user_id"`
UserId int64 `json:"user_id"` //网站前台登录uid
BackendUserId int64 `json:"backend_user_id"` //管理后台uid
}
// 签名key
@@ -19,9 +20,10 @@ var expireTime = int64(3600)
// 生成token
func GenJwtToken(userInfo UserInfo) (token string, err error) {
t := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"user_id": userInfo.UserId,
"exp": time.Now().Add(time.Second * time.Duration(expireTime)).Unix(), //过期时间
"iss": "fusen",
"user_id": userInfo.UserId,
"backend_user_id": userInfo.BackendUserId,
"exp": time.Now().Add(time.Second * time.Duration(expireTime)).Unix(), //过期时间
"iss": "fusen",
})
token, err = t.SignedString([]byte(signKey))
if err != nil {
@@ -50,15 +52,20 @@ func ParseJwtToken(token string) (UserInfo, error) {
}
// 检测授权
func CheckAuth(r *http.Request) (UserInfo, error) {
func CheckAuth(r *http.Request) UserInfo {
token := r.Header.Get("Authorization")
if token == "" {
return UserInfo{}, errors.New("token is required")
token = r.Header.Get("Auth-Key")
}
if token == "" {
log.Println("token is empty")
return UserInfo{}
}
//解析token
userInfo, err := ParseJwtToken(token)
if err != nil {
return UserInfo{}, err
log.Println(err)
return UserInfo{}
}
return userInfo, nil
return userInfo
}