Session跨域及单点登录解决方案
Java资料站
共 7954字,需浏览 16分钟
·
2021-06-01 23:44
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
<!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.9</version>
</dependency>
/**
* @Auther: tengxiao
* @Date: 2018/9/13 16:47
* @Description:
*/
public class JWTTokenUtil {
private static final String JWT_KEY_USER_ID="JWT_KEY_USER_ID";
private static final int EXPIRED_TIME=6000;
private static final String SECRET_KEY="tengvincent_user";
public static String generatorToken(Long userId)throws Exception{
//header Map
Map<String,Object> headerMap=new HashMap<>();
headerMap.put("typ","JWT");
headerMap.put("alg","HS256");
String token=JWT.create()
.withHeader(headerMap)
.withClaim("iss","Service")//签发者
.withClaim("aud","APP")
.withClaim(JWT_KEY_USER_ID,userId)
.withIssuedAt(DateTime.now().toDate())//sign time
.withExpiresAt(DateTime.now().plusMinutes(EXPIRED_TIME).toDate())//expired time
.sign(Algorithm.HMAC256(SECRET_KEY));
return token;
}
public static Map<String,Claim> varifyToken(String token){
DecodedJWT jwt=null;
try{
JWTVerifier verifer= JWT.require(Algorithm.HMAC256(SECRET_KEY)).build();
jwt=verifer.verify(token);
}catch (Exception e){
// e.printStackTrace();
// token 校验失败, 抛出Token验证非法异常
}
return jwt.getClaims();
}
public static Long getTokenInfo(String token){
Map<String, Claim> claims = varifyToken(token);
Claim user_id_claim = claims.get("user_id");
if (null == user_id_claim || StringUtils.isEmpty(user_id_claim.asString())) {
// token 校验失败, 抛出Token验证非法异常
}
return Long.valueOf(user_id_claim.asString());
}
}
1.token+redis与jwt的区别
2.如何实现jwt续期
3.jwt登出失效
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:
https://blog.csdn.net/tengxvincent/article/details/82685042
评论
Jasny-SSOPHP 单点登录解决方案
PHP版单点登录(兼容Ajax)Jasny\SSO是一种相对简单的单点登录(SSO)实现解决方案。使用SSO,登录到单个网站将验证所有联属网站的身份.实现原理一共分为3个角色:Client -用户的浏
Jasny-SSOPHP 单点登录解决方案
0
easy-sso简易单点登录解决方案
easy-sso 是一个基于时间戳的简易单点登录解决方案。模块easy-sso-core:sso核心代码easy-sso-server:sso服务端使用教程easy-sso-client:sso客户端
easy-sso简易单点登录解决方案
0
HybridAuth开源单点登录解决方案
HybridAuth是一个开源的基于Web的认证和授权解决方案,同时支持多个社交网络。在线演示:http://hauth.sx33.net/examples/
HybridAuth开源单点登录解决方案
0