资讯专栏INFORMATION COLUMN

JWT过期,修改密码,注销登录如何处理

wdzgege / 1454人阅读

摘要:设置过期时间每次登录,包括登录都返回一个可用的给客户端,保证合理登录的用户都可以用,实现不会过期的效果。直接将中该用户的信息过期。下次通过登录,会提醒失效,要重新登录,我们重新生成一个新的给用户,然后。。通过存储,实现过期失效的问题了。

JWT
使用场景:(自己总结的,每次请求携带token,然后到服务端验证token是否正确,是否过期,然后解码出携带的用户信息。服务端不需要再存储session信息,避免多点部署带来session处理的问题。 适合做无状态用户请求用户验证,避免存储session)

介绍:
https://jwt.io/introduction/
http://www.jianshu.com/p/576d...
http://www.jianshu.com/p/fcc1...

总结
优点
因为json的通用性,所以JWT是可以进行跨语言支持的,像JAVA,JavaScript,NodeJS,PHP等很多语言都可以使用。
因为有了payload部分,所以JWT可以在自身存储一些其他业务逻辑所必要的非敏感信息。
便于传输,jwt的构成非常简单,字节占用很小,所以它是非常便于传输的。
它不需要在服务端保存会话信息, 所以它易于应用的扩展

缺点
 - 一旦拿到token, 可用它访问服务器,直到过期,中间服务器无法控制它,如是它失效(有解决方案: 在 token
   中保存信息,可添加额外的验证,如加一个 flag, 把数据库对应的flag失效,来控制token有效性)。 
 -  token的过期时间设置很关键,一般把它设到凌晨少人访问时失效,以免用户使用过程中失效而丢失数据。  
 -  token保存的信息有限,且都是字符串。

安全相关
不应该在jwt的payload部分存放敏感信息,因为该部分是客户端可解密的部分。
保护好secret私钥,该私钥非常重要。
如果可以,请使用https协议
有人提到jwt暴露签名算法(alg),而且会有None(无签名),所以建议隐去alg。一般的协议制定都会考虑扩展性和普适性。但是我们在应用中可以采用我们默认的算法,而不是根据alg去处理。

作者:Dearmadman
链接:http://www.jianshu.com/p/576dbf44b2ae
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
--------------------- 
作者:o王o 
来源:CSDN 
原文:https://blog.csdn.net/u012129607/article/details/78685356 
版权声明:本文为博主原创文章,转载请附上博文链接!

今天讨论的主要是 token过期时间的问题
参考 :https://stackoverflow.com/que...

我们的解决方法是:

要求:
①一个账号仅能有一个token可以使用。
②token设置过期时间
③每次登录,包括token登录都返回一个可用的token给客户端,保证合理登录的用户都可以用token,实现token不会过期的效果。

思路:

function  刷新toke()
{
    token登录和正常账号密码登录:
    判断该用户(在redis中)是否已经有token,然后判断这个token创建时间是否当日创建的,如果是当日创建的。则直接返回该token给客户端。非当日创建的,重新生成一个新token给客户端
redis中保存数据结构   token_account_id:111     ["token"=>"aaa" , "create_time" =>1500000];

}

function 根据token获取用户信息(token)
{
    判断token对错=》是否过期=》解析出用户信息;
   到redis中查该用户 请求的token 和 redis存的token是否一致,不一致不允许token登录,
   再次根据创建时间,判断这个token是否可以用(主要防止修改密码和注销操作的token没失效问题) 
    最后返回用户信息    
}

修改密码和注销。直接将redis中该用户的信息过期。下次通过token登录,会提醒token失效,要重新登录,我们重新生成一个新的token给用户,然后balaball。。通过redis存储token,实现 token过期失效的问题了。

jwt采用 H256加密算法demo:https://github.com/postbird/j...

采用RSA加密算法demo http://blog.csdn.net/u0121296...

作者:o王o
来源:CSDN
原文:https://blog.csdn.net/u012129...
版权声明:本文为博主原创文章,转载请附上博文链接!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72663.html

相关文章

  • JSON WEB TOKEN(JWT)的分析

    摘要:当达到过期时间时,需要对进行续签,可以定时想服务器提交请求,重新获取来实现。注销问题注销问题当客户登录的时候,需要注销登录会话,由于是没有状态的,只能在客户端把删除,伪造一个注销的状态,真正的注销只能等待过期。JSON WEB TOKEN(JWT)的分析 一般情况下,客户的会话数据会存在文件中,或者引入redis来存储,实现session的管理,但是这样操作会存在一些问题,使用文件来存储的时...

    hsluoyz 评论0 收藏0
  • JWT、OAuth 2.0、session 用户授权实战

    摘要:为用户提供授权以允许用户操作非公开资源,有很多种方式。具体的代码根据不同的授权方案而有所不同。使用授权原理利用来验证用户,有两种机制实现。使用来实现用户授权主要用于签发如果有将异步的签名。   在很多应用中,我们都需要向服务端提供自己的身份凭证来获得访问一些非公开资源的授权。比如在一个博客平台,我们要修改自己的博客,那么服务端要求我们能够证明 我是我 ,才会允许我们修改自己的...

    zhaot 评论0 收藏0
  • JWT、OAuth 2.0、session 用户授权实战

    摘要:为用户提供授权以允许用户操作非公开资源,有很多种方式。具体的代码根据不同的授权方案而有所不同。使用授权原理利用来验证用户,有两种机制实现。使用来实现用户授权主要用于签发如果有将异步的签名。注意这里的与之前用于签发的应该是同一个。 在很多应用中,我们都需要向服务端提供自己的身份凭证来获得访问一些非公开资源的授权。比如在一个博客平台,我们要修改自己的博客,那么服务端要求我们能够证明 我是...

    Jochen 评论0 收藏0
  • 分布式系统--感性认识JWT

    摘要:的安全性不好,攻击者可以通过获取本地进行欺骗或者利用进行攻击。 好久没写博客了,因为最近公司要求我学spring cloud ,早点将以前软件迁移到新的架构上。所以我那个拼命的学呐,总是图快,很多关键的笔记没有做好记录,现在又遗忘了很多关键的技术点,极其罪恶! 现在想一想,还是踏踏实实的走比较好。这不,今天我冒了个泡,来补一补前面我所学所忘的知识点。 想要解锁更多新姿势?请访问我的博客...

    sherlock221 评论0 收藏0
  • 大话javascript 7期:Cookie、Session和Token的那些事儿

    摘要:服务器检查该,以此来辨认用户状态。如果为,表示删除该。防篡改签名服务器为每个项生成签名。服务端根据接收到的内容和签名,校验内容是否被篡改。算法得到的签名和请求中数据的签名不一致,则证明数据被篡改。 一、登录认证机制 随着互联网的不断发展,无论是网站还是app,一般都会要求用户注册/登录。主要的登录方式有账户密码登录、第三方登录(微信登录、QQ登录、微博登录等) 登录可分为三个阶段(登录...

    tianren124 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<