JWT-Json web token加解密(HMAC256)-用于单点分布式登录

1.什么是JWT

jwt 全称json web token 为了在网络就用环境进行传递声明而执行的一种基于json 的开放标准,JWT应用于分布式单点登录系统,身份提供者和服务提供者之产传递认证用户信息

2.JWT认证流程

  • 用户输入用户名密码进行登录
  • 登录服务进行登录信息验证
  • 登录服务通过验证颁发给用户一个Token
  • 客户端保存token,每次请求带上token
  • 业务服务验证token,读取信息

3.JWT组成

头部.载荷.签名
三个部份用.分隔

4.代码部份

4.1依赖

<dependency>
	<groupId>com.auth0</groupId>
	<artifactId>java-jwt</artifactId>
	<version>3.12.0</version>
</dependency>

4.2实现

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要解析jwt-go的token,可以按照以下步骤进行操作: 1. 首先,引入`jwt-go`包并导入所需的其他依赖项。可以使用以下代码来实现: ``` import ( "fmt" "github.com/dgrijalva/jwt-go" ) ``` 2. 然后,定义自定义声明结构体,该结构体包含要在token中解析的声明信息。例如,可以定义一个名为`MyCustomClaims`的结构体,如下所示: ``` type MyCustomClaims struct { Foo string `json:"foo"` jwt.StandardClaims } ``` `MyCustomClaims`结构体中的`Foo`字段表示在token中包含的自定义声明。 3. 接下来,使用`jwt.ParseWithClaims`函数解析token并将其与自定义声明结构体进行绑定。可以使用以下代码实现: ``` tokenString := "eyJhbGciOiJIUzI1NiIsInR5cCI6I***XVCJ9.eyJmb28iOiJiY***iLCJleHAiOjE1***AwLCJpc3MiOiJ0ZXN0In0.HE7fK0xOQwFEr4WDgRWj4teRPZ6i3GLwD5YCm6Pwu_c" claims := &MyCustomClaims{} token, err := jwt.ParseWithClaims(tokenString, claims, func(token *jwt.Token) (interface{}, error) { // 返回用于验证token密密钥 return []byte("AllYourBase"), nil }) ``` 在`jwt.ParseWithClaims`函数中,传入token字符串、自定义声明结构体的指针和一个回调函数。回调函数用于提供用于验证token密密钥。 4. 最后,检查解析和验证token的结果。可以使用以下代码来检查是否成功解析和验证了token: ``` if token.Valid { fmt.Printf("%v %v", claims.Foo, claims.ExpiresAt) } else { fmt.Println(err) } ``` 如果token有效,可以通过`claims`变量访问其中的声明信息。在上述示例中,我们打印了`Foo`字段和`ExpiresAt`声明的值。如果token无效,将打印出解析和验证错误。 综上所述,这就是解析`jwt-go`的token的步骤。请注意,需要根据自己的实际情况修改代码中的token字符串和自定义声明结构体。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [(4)go web开发之 JWT-Token认证机制Access Token与Refresh Token及 jwt-go 库介绍及在项目中使用](https://blog.csdn.net/pythonstrat/article/details/121875782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值