token实现及前后端分离对接后台配置实现

本文介绍了在前后端分离的项目中,如何实现JWT Token的生成、校验和用户信息解析,详细讲解了后台工具类的设计,并讨论了处理跨域时token参数获取的问题,特别提到了cas_access_token作为token的key。
摘要由CSDN通过智能技术生成

在token前后端分离中,后台token工具类设计实现:

  1. 依赖jar包
    gradle配置:
    //token util tools jar
    compile ‘com.nimbusds:nimbus-jose-jwt:5.4’

  2. 生成token、校验token和解析token用户信息

     import java.util.Date;
     import java.util.HashMap;
     import java.util.Map;
     import org.apache.commons.lang3.StringUtils;
     import org.springframework.util.CollectionUtils;
     import com.google.gson.Gson;
     import com.nimbusds.jose.JWSAlgorithm;
     import com.nimbusds.jose.JWSHeader;
     import com.nimbusds.jose.JWSObject;
     import com.nimbusds.jose.JWSSigner;
     import com.nimbusds.jose.JWSVerifier;
     import com.nimbusds.jose.Payload;
     import com.nimbusds.jose.crypto.MACSigner;
     import com.nimbusds.jose.crypto.MACVerifier;
     import net.minidev.json.JSONObject;
     
     /**
      * token工具类
      *
      * @author ***
      * @version Created:2018年12月26日
      * 
      */
     public class TokenUtil {
     
     	/****
     	 * 依赖jar包: 
     	 * compile com.nimbusds:nimbus-jose-jwt:5.4 compile
     	 * com.google.code.gson:gson:2.8.5
     	 */
     	/**
     	 * 1.创建一个32-byte的密匙
     	 */
     
     	private static final byte[] SECRET_KEY = "xxxxxxxxxxx".getBytes();
     
     	/****
     	 * token创建时间 (避免key被自定义保存数据覆盖)
     	 */
     	private static final String CREATE_TIME_KEY = "__cas_create_time";
     
     	/****
     	 * token失效时间
     	 */
     	private static final String INVALID_TIME_KEY = "__cas_invalid_time";
     
     	/****
     	 * 生成token
     	 * 
     	 * @param payloadMap
     	 *            用户数据信息
     	 * @param invalidTime
     	 *            失效时间
     	 * @return
     	 */
     	public static String createToken(Map<String, Object> payloadMap, long createTime, long invalidTime) {
     		try {
     			if (invalidTime < createTime) {
     				System.out.println("====> 失效时间必须大于创建时间...");
     				return null;
     			}
     			if (CollectionUtils.isEmpty(payloadMap)) {
     				payloadMap = new HashMap<String, Object>();
     			}
     			payloadMap.put(CREATE_TIME_KEY, System.currentTimeMillis());
     			payloadMap.put(INVALID_TIME_KE
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot和Vue.js是两个非常流行的技术栈,可以非常好地实现前后端分离的开发模式。Security和JWT是两个很好的工具,可以帮助我们实现安全的登录和授权机制。 以下是实现Spring Boot和Vue.js前后端分离的步骤: 1.创建Spring Boot工程 首先,我们需要创建一个Spring Boot工程,可以使用Spring Initializr来生成一个基本的Maven项目,添加所需的依赖项,包括Spring Security和JWT。 2.配置Spring Security 在Spring Security中,我们需要定义一个安全配置类,该类将定义我们的安全策略和JWT的配置。在这里,我们可以使用注解来定义我们的安全策略,如@PreAuthorize和@Secured。 3.实现JWT JWT是一种基于令牌的身份验证机制,它使用JSON Web Token来传递安全信息。在我们的应用程序中,我们需要实现JWT的生成和验证机制,以便我们可以安全地登录和授权。 4.配置Vue.js 在Vue.js中,我们需要创建一个Vue.js项目,并使用Vue CLI来安装和配置我们的项目。我们需要使用Vue Router来定义我们的路由,并使用Axios来发送HTTP请求。 5.实现登录和授权 最后,我们需要实现登录和授权机制,以便用户可以安全地登录和访问我们的应用程序。在Vue.js中,我们可以使用Vue Router和Axios来发送HTTP请求,并在Spring Boot中使用JWT来验证用户身份。 总结 以上是实现Spring Boot和Vue.js前后端分离的步骤,我们可以使用Security和JWT来实现安全的登录和授权机制。这种开发模式可以让我们更好地实现前后端分离,提高我们的开发效率和应用程序的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值