当前位置: 首页 > news >正文

网站管理规范西安到北京火车票多少钱

网站管理规范,西安到北京火车票多少钱,网站建设宀金手指排名,科技有限公司属于什么行业token登录的实现 我这种token只是简单的实现token#xff0c;就是后端利用UUID 生成简单随机码#xff0c;利用随机码作为在Redis中的键#xff0c;然后存储的用户信息作为值#xff0c;在每次合理请求的时候对token的有效时间进行刷新#xff08;利用拦截器#xff09;就是后端利用UUID 生成简单随机码利用随机码作为在Redis中的键然后存储的用户信息作为值在每次合理请求的时候对token的有效时间进行刷新利用拦截器以确保用户信息的有效性。 为什么要用token 使用令牌Token进行身份验证和授权是一种常见的方式特别适用于分布式和跨域请求的应用程序。 1. 为什么要使用 Token 无状态性Token 身份验证是无状态的不需要在服务器端存储会话信息。每个请求都包含了身份信息因此服务器不需要维护状态。跨域支持Token 可以轻松处理跨域请求因为令牌可以在 HTTP 请求的头部通常是 Authorization 头部中传递而不受同源策略的限制。扩展性Token 可以包含任意信息因此可以用于传递用户权限、角色、过期时间等信息。 2. Token 使用逻辑 用户登录成功后生成一个 Token 并将用户信息存储在服务器端如 Redis以便快速验证和获取用户信息。向前端返回 Token。前端将 Token 存储在本地通常是 sessionStorage 或 localStorage。在每个后续的请求中前端将 Token 通过请求头通常是 Authorization 头发送给后端。后端从请求头中获取 Token验证其合法性并使用 Token 获取用户信息。 后端Spring Boot示例 定义login接口 GetMapping(/login)public BaseResponseString login(String username,String password){LambdaQueryWrapperUser lambdaQueryWrapper new LambdaQueryWrapper();lambdaQueryWrapper.eq(User::getUsername,username);User one userService.getOne(lambdaQueryWrapper);if(one null){throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);}String token UUID.randomUUID().toString();redisTemplate.opsForHash().putAll(test:user:token, BeanUtil.beanToMap(one));redisTemplate.expire(test:user: token,2, TimeUnit.MINUTES);return ResultUtils.success(token);}定义一个获取用户信息的其他接口 GetMapping(/get)public BaseResponseUser get(){return ResultUtils.success(UserHolder.getValue());}创建拦截器 public class LoginInterceptor implements HandlerInterceptor {private RedisTemplateString,Object redisTemplate;public LoginInterceptor(RedisTemplateString,Object template){this.redisTemplate template;}Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {// 获取 sessionString token request.getHeader(Authorization);// 检查用户是否已登录User user new User();BeanUtil.fillBeanWithMap(redisTemplate.opsForHash().entries(test:user:token),user,false);if(user null|| BeanUtil.isEmpty(user)){throw new BusinessException(ErrorCode.NOT_LOGIN_ERROR);}redisTemplate.expire(test:user:token,2, TimeUnit.MINUTES);// 将用户数据存储到 ThreadLocal 中以便在整个请求周期内访问UserHolder.setValue(user);// 进行其他逻辑验证根据需求自行添加return true; // 允许请求继续执行}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {// 在请求处理之后执行可以对 ModelAndView 进行修改}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {// 在请求完成之后执行用于资源清理等操作// 清理 ThreadLocal 中的用户数据防止内存泄漏UserHolder.clear();}注册拦截器 Configuration public class MvcConfig implements WebMvcConfigurer {Resourceprivate RedisTemplateString,Object redisTemplate;Overridepublic void addInterceptors(InterceptorRegistry registry) {// 登录拦截器registry.addInterceptor(new LoginInterceptor(redisTemplate)).addPathPatterns(/**).excludePathPatterns(/user/login);} }使用结果截图 结果返回了一个token这个token前端拿到以后要保存到sessionStorage或者LocalStorage里面再把这个token送到请求头中就可以啦 另一个请求 设置请求头 设置Authorization 然后发起就可以得到啦 如果没有authorization就是得到未登录结果 前端Vue.js示例 !-- Login.vue -- templatedivinput v-modelusername placeholderUsername /input typepassword v-modelpassword placeholderPassword /button clickloginLogin/button/div /templatescript export default {data() {return {username: ,password: };},methods: {login() {// 发送登录请求获取 Tokenaxios.post(/api/user/login, { username: this.username, password: this.password }).then(response {const token response.data.token;// 存储 Token 到 sessionStoragesessionStorage.setItem(token, token);// 跳转到其他页面或进行其他操作}).catch(error {console.error(Login failed:, error);});}} }; /script
http://www.hkea.cn/news/14442583/

相关文章:

  • 苏州学习网站建设怎么学习制作网站
  • 同个主体新增网站备案专门教做甜品的网站
  • 重庆公司建设网站hao123网址之家官网
  • 来宾城乡建设局网站网站个人微信收款方案
  • 哈尔滨模板建站公司推荐正规的网站制作在哪里
  • 网站建设要知道的标小智logo设计官网
  • wordpress自适应站点印花图案设计网站
  • 代理网站哪个好渝叶购零售客户电商网站
  • 怎么用网站卖自己做ftp备份wordpress
  • 建设科技网络网站的意义和目的asp.net做登录网站资源
  • 网站建设文字教程百姓网为什么不能创建地址
  • 网站后台补丁如何做网页制作模板在哪买
  • 河北网站制作公司哪家专业如何做企业推广
  • 织梦是什么网站网站关键词突然搜不到
  • 信阳工程建设一体化平台网站网络服务提供商有哪些公司
  • 站长 网站ip信阳制作网站ihanshi
  • 青秀区网站建设市场营销策略论文参考文献
  • 爬虫做网站相关教程个人网站备案需要多久
  • 美食网站html代码免备案域名免费申请
  • 网站搭建用什么软件网站有没有做网站地图怎么看
  • 银川专业做网站的公司免费qq空间网站
  • 北京最大网站建设公司排名哪有备案好的网站
  • 新乡正规网站建设哪家便宜化妆品网站建设描述
  • 阿里巴巴国际站下载卖家版后台控制网站关键词设置的详细代码
  • 网站优惠券怎么做的四川省住房和城乡建设厅官网平台
  • 网站建设及安全制度魔方网站
  • 网站安全查询系统通辽网站制作
  • 做网站咨询陕西网站制作公司哪家好
  • 展示型网站的特点做网站的教学视频
  • 58同城网站推广网站搜索引擎推广怎么做