hxhzyh / gp-jwt
access-statistics
1.0.0
2021-08-17 06:41 UTC
Requires
- php: >=7.2.0
This package is not auto-updated.
Last update: 2025-04-10 20:19:30 UTC
README
安装
composer require hxhzyh/gp-jwt
介绍
jwt 通用于PHP语言和go语言的封装 go: go get github.com/dgrijalva/jwt-go 实例代码: 生成:
type Claims struct {
UserId uint
jwt.StandardClaims
}
claims := &Claims{
UserId: 1,
StandardClaims:jwt.StandardClaims{
//ExpiresAt: 1629167344,
Issuer: "hello",
//IssuedAt: 1629167344,
Subject: "user_token",
Id: "hdfsafdsag",
},
}
tokenObj := jwt.NewWithClaims(jwt.SigningMethodHS256,claims)
tokenString,_ := tokenObj.SignedString(secretKey)
解析:
//封装方法
func ParseToken(tokenString string) (*jwt.Token, *Claims, error) {
claims := &Claims{}
token,err := jwt.ParseWithClaims(tokenString,claims, func(token *jwt.Token) (interface{}, error) {
return jwtKey, nil
})
return token,claims,err
}
//调用
token, claims, err := common.ParseToken(tokenString)
if err != nil || !token.Valid {
common.Response(c,401,"登录已过期2", nil)
c.Abort() //抛弃这次请求
return
}
userId := claims.UserId
PHP:
composer require hxhzyh/gp-jwt
生成:
$jwtObj = Jwt::getInstance()->setSecretKey($secretkey)->publish();
$jwtObj->setUserId(1)->setIss('hello')->setSub('user_token')->setJti('suiji-jti');
$token = $jwtObj->getToken();
解析:
$jwtObj = Jwt::getInstance()->setSecretKey($secretkey)->decode($jwtToken);
dd($jwtObj, $jwtObj->getStatus(), $jwtObj->getUserId());
注:生成时,时间可自定义是否使用,传值则验证token是否过期,不传值,不认证,需自定义验证,例单点登录限制,需redis介入