android - 使用 JWT 的移动身份验证
问题描述
我需要对与 REST api 通信的移动应用程序的用户进行身份验证。
经过一番研究,我发现了两种方法:
- Firebase 身份验证(不,因为我有自己的数据库)
- 智威汤逊的使用
所以我对 JWT 有疑问:
如果我使用 HTTPS 连接,有人可以窃取令牌吗?(例如中间没有人)
API 必须为每个请求发送一个新令牌?(这样我可以减少令牌的生命周期?)。
为了避免用户重新连接,我需要使用刷新令牌,可以是另一个JWT吗?
解决方案
- 这取决于,如果您将其存储在 localstorage 或 sessionStorage 中,则可以通过 xss 攻击窃取它。如果您存储在 httpOnly 安全 cookie 上,那就更难了。但是当您使用 https 时,不可能从请求中窃取它。
- 不,有一个令牌有效时间,例如 1 小时、1 天等...
- 是的。它应该是另一个令牌,称为刷新令牌,您可以在此处阅读更多相关信息: https ://auth0.com/blog/refresh-tokens-what-are-they-and-when-to-use-them/
推荐阅读
- r - 修改 R 中的循环以在计算值旁边添加文件名
- javascript - Webpack 内联图片路径
- axon - org.axonframework.messaging.annotation.MessageHandlerInvocationException
- python-3.x - 将 FunctionTransformer 与 sklearn Pipeline 和 ColumnTransformer 一起使用 - 错误:无效的类型提升
- mysql - 如何在 SQL 中处理元组比较的空值
- powershell - 如何在 Powershell 中删除表单“项目”
- layout - Pycharm如何调整“侧边栏”的宽度?
- python - 如何在 urlopen 响应中搜索特定字符串?
- algorithm - 有没有一种方法可以序列化树而不使用额外的 null 标识符?
- r - 在 R 中下载 WGCNA 包时出现安装问题