-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
第 61 题:介绍下如何实现 token 加密 #106
Comments
这个题目是问: 生成token的方法,比如 JWT,还是说利用加密算法,比如对称加密或者非对称加密 加密生成后的token ? |
加点随机数算法,后台配合对应解密算法。 |
jwt举例
|
这边也是这么做的,后端根据token来查权限和是否登录以及失效等 |
相关参考文章: |
|
@zeroone001 不是很清楚的知道这道题答案是啥了。。。 |
后端通过随机数加签名生成一个token,前端拿到token后通过拦截器在接口调用时添加token。 |
后端 使用一个固定秘钥加密用户标识(uid)+创建token时间(ttl) 通过对称加密(收到客户端提交的token需要解开所有使用堆成加密)的加密算法生成一个字符串,这个字符串就是一个token,每次客户端请求都将token放到请求头header中(body参数也可以,无所谓在哪),服务器端收到该请求并使用相同的秘钥解开token,查看token是否过期,也可以通过token中的uid和其他参数比较验证用户的合法性(例如:请求参数中也有一个uid必填参数,这样就可以对比两个uid是否相同,如果相同则说明是同一个人,如果单纯的只验证token,只要另外的用户拿到了没过期的token就可以伪造用户身份进行服务器端api的请求) |
这篇应该主要问的是token是怎么生成的: 认证方案: |
token为什么要加密? |
传统身份验证的方法 解决的方法就是,当用户请求登录的时候,如果没有问题,我们在服务端生成一条记录,这个记录里可以说明一下登录的用户是谁,然后把这条记录的 ID 号发送给客户端,客户端收到以后把这个 ID 号存储在 Cookie 里,下次这个用户再向服务端发送请求的时候,可以带着这个 Cookie ,这样服务端会验证一个这个 Cookie 里的信息,看看能不能在服务端这里找到对应的记录,如果可以,说明用户已经通过了身份验证,就把用户请求的数据返回给客户端。 上面说的就是 Session,我们需要在服务端存储为登录的用户生成的 Session ,这些 Session 可能会存储在内存,磁盘,或者数据库里。我们可能需要在服务端定期的去清理过期的 Session 。 基于 Token 的身份验证方法
|
No description provided.
The text was updated successfully, but these errors were encountered: