作者:我不是古哥 | 来源:互联网 | 2023-09-03 10:52
一、COOKIE
js 客户端存储(COOKIE / sessionStorage / localStorage)
二、token
Token 是在服务端产生的。
如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位。
Token 的特点:
- Token 完全由应用管理,所以它可以避开同源策略;
- Token 可以避免 CSRF 攻击;
- Token 可以是无状态的,可以在多个服务间共享。
案例:
import JWT from 'jsonwebtoken';
import { tokenBaseInfo } from '../config/crontab.config'
export const createToken = (params) => {const { secret, expires } = tokenBaseInfo;const token = JWT.sign({id: params.id,timestamp: (new Date()).getTime()}, secret, {expiresIn: expires});return token;
}
export const resolveToken = (token, secret) => {return new Promise((resolve, reject) => {JWT.verify(token, secret, (error, data) => {error ? reject(error) : resolve(data);});})
}
【参考文档】
深入理解token:https://www.cnblogs.com/xuxinstyle/p/9675541.html
nodejs 基于token的身份验证:https://blog.csdn.net/qq_37261367/article/details/81387107
JSON Web Token 入门教程:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html
【推荐文章】
http://blog.leapoahead.com/2015/09/06/understanding-jwt/
https://blog.csdn.net/mChales_Liu/article/details/117411973
三、session