基于 JWT 的 Web 应用和原生 android 应用的身份验证

Posted

技术标签:

【中文标题】基于 JWT 的 Web 应用和原生 android 应用的身份验证【英文标题】:JWT based authentication for web app and native android app 【发布时间】:2019-11-12 16:38:58 【问题描述】:

我有一个为 REST API 实现基于 JWT 的身份验证的后端服务器。虽然前端 webapp 是用 angular js 开发的,但我计划将 JWT 存储在 HTTPOnly cookie 中(具有 CSRF 保护)。这些 REST API 也被原生 android 应用程序访问。但是,看起来原生 android 应用程序无法设置 cookie。我想避免将 JWT 存储在浏览器本地存储中。

是否有一种通用且安全的方法来为适用于 Web 应用和原生 Android 移动应用的 REST API 实施基于 JWT 的身份验证?

之前我想过用 USER-AGENT 来区分 webapp 和 mobile app 并实现两种不同的 auth 机制。

【问题讨论】:

【参考方案1】:

如果您按照协议 (OAuth 2.0) 进行操作,您只需使用片段、查询字符串或表单帖子(取决于客户偏好)而不是 cookie 将令牌发送给用户! 他们如何存储令牌取决于他们。 一旦您将某些内容发送给公共客户,就无法安全地保存任何内容。您最好将令牌放在本地存储或会话存储中,而不是可能导致 CSRF 攻击的 cookie。 Access_Token 是短暂的,它的泄漏应该没有害处。

【讨论】:

以上是关于基于 JWT 的 Web 应用和原生 android 应用的身份验证的主要内容,如果未能解决你的问题,请参考以下文章

关于 cookie、JWT 和 Web 应用程序

使用原生导航编写基于 Web 的移动应用程序是不是可行?

JWT(JSON Web Tokens)

JWT(JSON Web Tokens)

JWT(JSON Web Token)

Day916.基于JWT令牌的安全认证架构 -SpringBoot与K8s云原生微服务实践