在移动设备上使用 JWT auth 离线注销

Posted

技术标签:

【中文标题】在移动设备上使用 JWT auth 离线注销【英文标题】:Offline logout with JWT auth on mobile 【发布时间】:2019-02-14 17:54:36 【问题描述】:

在具有基于 jwt 令牌的身份验证的移动应用程序上,是否有人具有离线注销的特殊技术?或者你有什么建议?

【问题讨论】:

你不能简单地丢弃令牌吗? @Paulw11by "discard" 你的意思是从设备中删除它?因为后端不知道用户何时下线。 但是设备处于离线状态,所以它无法告诉后端任何事情。通常客户端只是丢弃令牌,因此下次它尝试访问后端时(当它重新联机时),用户需要进行身份验证,因为客户端没有有效的令牌。 “登录”和“在线”是不同的东西。如果后端需要知道用户是否在线,那么您需要某种持久连接。 是的,我明白你的意思。丢弃设备上的令牌似乎是正确的做法。但是,如果应用程序支持推送通知,后端将继续向已注销的用户发送推送通知。我认为它可能需要更多的逻辑。 所以这是一个稍微不同的问题。如果您将所有细节都放在问题中,这将对我们有所帮助。如果设备处于脱机状态,则在重新联机之前不会收到通知。您可以发送静默通知,让您的应用程序变成本地通知。在通知中包含目标用户 ID,以便在用户注销/更改时客户端可以忽略它。 【参考方案1】:

在this post 之后找到了一个很好的解决方案。结合@Paulw11 所说的你必须能够解决这个问题。

【讨论】:

以上是关于在移动设备上使用 JWT auth 离线注销的主要内容,如果未能解决你的问题,请参考以下文章

使用 Angularjs 和 Laravel 注销会话过期

强制过期 JWT

Spring Boot JWT - 如何实现刷新令牌和注销 REST-API

使用 Laravel JWT 重新认证时将旧令牌列入黑名单

Auth0 NodeJS JWT 身份验证在移动应用程序的 API 中

注销不适用于 Laravel JWT-auth