前端鉴权的几种方式

前端鉴权


保持用户的登录状态,在前端开发中也是一门不小的学问,涉及到的知识覆盖前后端。

目前前端用来处理用户鉴权信息的方式,大题看来有两种。

cookie

说到 cookie 大家都会想起饼干,在前端的领域里 cookie 用于存储变量。在前端请求网络资源或是后端接口时,请求头 Headers 里都会带上当前域下的 cookie 信息,服务端通过检测请求头内的 cookie 判断当前用户的登录状态是否过期,或是 cookie 是否错误,来判断当前用户是否能成功返回响应。

把 cookie 信息种到当前域名这个过程不会复杂,无论是 Java、PHP、Node 等服务端语言去编写接口,都有相应的种 cookie 的 API。这个过程大概是,前端请求登录接口,后端验证用户名和密码是否正确。在正确的情况下服务端 Set-Cookie ,参数大致是域名、有效时间、secure (是否 HTTPS ) 等,种下 cookie 之后,浏览器就会在指定域下添加相应的 cookie 信息。

token

有些同学会有这样的疑问,如果没有浏览器环境,那就没有种 cookie 的环境,用户状态如何维护?

这里就引出 Token 的概念,可以这样理解它:Token 是服务器生成的一串随机字符串或者一个 json 串,用于客户端进行资源请求的令牌。

当我们调用登录接口之后,服务端返回给前端一个 Token ,之后存储 Token 到本地环境,每次前端请求接口的时候,都需要在请求头里带上 Token 信息,并且 Token 可以在服务端设置过期时间。Token 过期之后,前端在请求失败回调 406(前后端协商好错误码)之后重新跳转到登录界面进行鉴权。

若是考虑到之后会拓展小程序和原生 APP ,建议使用 Token 的形式进行用户信息鉴权,方便以后代码进行二次开发。

你可能感兴趣的:(资源分享)