SpringBoot、uniapp项目整合token验证

SpringBoot、uniapp项目整合token验证

由于本小项目前端uniapp使用token进行验证,所以在写后端的时候我也学习了相关token的使用方法。

什么是token?

简单理解就是token是在服务端生成的一个字符串,传给客户端作为请求携带的令牌。当用户第一次登录的时候,服务器就会生成一个token返回给客户端,之后客户端的请求都会携带这个令牌,服务器解析会拦截这些请求并判断令牌是否有效,如果没有token令牌或者失效就会拦截下来。

前端配置

首先在前端配置好网格拦截器,对于请求都带上token以便后端进行身份验证,前端使用的是uView框架,安装并配置好uView之后,下面就是interceptor拦截器,在mian.js中引入

module.exports = (vm) => {
   
   
      // 初始化请求配置
      uni.$u.http.setConfig((config) => {
   
   
          /* config 为默认全局配置*/
          config.baseURL = 'http://192.168.194.251'; /* 根域名 */
          return config
      })
  	
  	// 请求拦截,使请求携带token
  	uni.$u.http.interceptors.request.use((config) => {
   
    
      const token = uni.getStorageSync("token");
      config.header.Authorization = "Bearer " + token;
      config.header.Accept = "application/json";
      return config;
  	})
  	
  	//响应拦截
  	uni.$u.http.interceptors.response.use((response) => {
   
   
      console.log(response)
      if (response.statusCode != 200) {
   
   
        console.log('响应拦截成功!=200')
      	return response;
      } else {
   
   
        console.log('响应拦截返回')
      	return response;
      }
    }, (response) => {
   
    
        console.log('这是响应错误的返回')
        console.log(response)
    		return response
    	})
  }
//引入拦截器
require('@/common/http.interceptor.js')(app)

后端配置

pom引入
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.0</version>
        </dependency>
application.yml
audience:
  clientId: 098f6bcd4621d373cade4e832627b4f6
   # 密钥, 经过Base64加密, 可自行替换。Base64加解密工具:http://tool.chinaz.com/Tools/Base64.aspx
  base64Secret: eXViYW9aSk5VU0NFTkVSWVYxLjA=
  # JWT的签发主体,存入issuer
  iss: issued by yubao
  # 过期时间毫秒
  expiresSecond: 604800000
Audience

新建配置信息的实体类,以便获取JWT配置:

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@ConfigurationProperties(prefix = "audience")
@Component
public class Audience {
   
   
    //代表这个JWT的接收对象,存入audience
    private String aud;
    private String base64Secret;
    //JWT的签发主体,存入issuer
    private String iss;
    private int expiresSecond;

}
创建JWT工具类
package com.yubao.zjnu_demo.utils;


import com.yubao.zjnu_demo.common.CustomException;
import com.yubao.zjnu_demo.entity.Audience;
import io.jsonwebtoken.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.Base64Utils;

import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
import java.nio.charset.StandardCharsets;
import java.security.Key;
import java.util.Base64;
import java.util.Date;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值