JWT 和 Oauth2 各自用途

孤者浪人 提交于 2020-11-26 04:35:13

适用场景:

OAuth2用在使用第三方账号登录的情况(比如使用weibo, qq, github登录某个app)

JWT是用在前后端分离, 需要简单的对后台API进行保护时使用.(前后端分离无session, 频繁传用户密码不安全)

OAuth2是一个相对复杂的协议, 有4种授权模式, 其中的access code模式在实现时可以使用jwt才生成code, 也可以不用. 它们之间没有必然的联系.

因此,做API开发,用JWT最为合适。

JWT的原理:传送门

相关实现:

1. 实现单客户端登录的方式

因为JWT的header和payload部分都是可以解密出来的,所以不能放私密信息,所以建议不要放置用户名等信息,可以再用户注册地时候生成一个唯一字符串,作为用户唯一标识uuid,在payload中标识出来,类似于微信的openid。用户从一个客户端登录时,记录下用户的登录时间,精确到毫秒,避免同时点击登录时由于是秒而不能区分不同的客户端。缓存在服务器的时候用uuid作为key,登录时间作为value。客户端调用数据的时候检查登录时间区分不同客户端。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!