# go-php-jwt **Repository Path**: zyxun/go-php-jwt ## Basic Information - **Project Name**: go-php-jwt - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-08-17 - **Last Updated**: 2021-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jwtAuth #### 安装 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介入 #### 依赖