关于面试所提问的token

本文探讨了Token在Web开发中的作用,解释了为何使用Token,其构成部分,以及基于Token的身份验证流程。同时,讨论了Token的有效期设置及其影响,并提出了解决Token过期导致用户体验下降的两种策略:服务器端保存Token状态和使用Refresh Token。
摘要由CSDN通过智能技术生成

什么是Token?

token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。

当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。

简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。

为什么要用Token?

Token 完全由应用管理,所以它可以避开同源策略
Token 可以避免 CSRF 攻击
Token 可以是无状态的,可以在多个服务间共享
基于token机制的身份认证
使用token机制的身份验证方法,在服务器端不需要存储用户的登录记录。大概的流程:

客户端使用用户名和密码请求登录。
服务端收到请求,验证用户名和密码。
验证成功后,服务端会生成一个token,然后把这个token发送给客户端。
客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。
客户端每次向服务端发送请求的时候都需要带上服务端发给的token。
服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数据。(如果这个 Token 在服务端持久化(比如存入数据库),那它就是一个永久的身份令牌。)
Token需要设置有效期吗?

对于这个问题,我们不妨先看两个例子。一个例子是登录密码,一般要求定期改变密码,以防止泄漏࿰

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端面试中,关于token的问题通常涉及到前端如何处理身份验证和授权。通常有以下两种方式来处理token: 第一种方式是利用Axios的请求/响应拦截器。通过使用axios.interceptors.request.use来进行请求拦截,判断localStorage中是否存在token,如果有的话,在请求头中添加token。而对于响应拦截,可以使用axios.interceptors.response.use来进行判断,如果response.status为401,则表示token失效,需要清空本地的token,并跳转到登录页。 第二种方式是使用Vue Router的全局路由守卫router.beforeEach。这个方法接收三个参数:to、from和next。如果用户访问的是不需要登录即可访问的页面(如to.path === '/login'),则直接跳转。否则,需要判断本地是否有token,如果有的话,调用next();如果没有,则调用next('/login')跳转回登录页。 总结起来,前端面试中关于token的问题主要是关于如何处理前端的身份验证和授权。可以通过Axios的请求/响应拦截器或Vue Router的全局路由守卫来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [2023前端面试题及答案整理(Vue)](https://blog.csdn.net/suli77/article/details/128919978)[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、付费专栏及课程。

余额充值