2017-08-15 65 views
0

当用户安装应用程序时,我们在应用程序上生成唯一的ID并存储它。启用一次登录到一台设备

用户可以用用户名和密码登录。如果登录成功,服务器将OAuth令牌发送至应用程序。应用程序存储令牌和刷新令牌以备将来使用。

但是当用户尝试从新设备登录时,我想从以前的手机注销用户。

如何注销其他设备?

(我想从之前的设备中删除OAuth凭证。如果没有应用程序尝试刷新令牌,并允许用户登录。)

,我想办理注销逻辑? 请任何帮助。

回答

1

我不认为接受的答案是一个正确的解决方案。你不应该在客户端有这个逻辑。这可能会导致潜在的安全问题。

您所要做的只是使服务器端的旧oauth令牌无效,因此下次旧设备使用旧令牌时,会收到400个invalid_grant异常,即您必须执行注销时。

+0

是的。但那么我怎么知道从哪个设备用户登录? –

+0

我是否需要重写OAuth登录方法?如果不是OAuth将新令牌给予同一用户。 (两个用户可以同时登录) –

+1

Roshan,我不知道你的oauth实现是什么。我无法深入细节!重要的是,只要您使登录的用户帐户的旧刷新令牌失效,只有最新的令牌将被激活,而当其他设备尝试使用旧令牌访问API时,它将被注销。 –

1

您可以发送通知到先前登录的设备以删除登录。或者每次应用程序启动时在后台进行检查,如果登录在服务器或其他设备已经登录的情况下仍然有效。如果已登录的其他设备不让用户进入应用程序并从应用程序中删除登录凭据。

+0

所以当用户从另一台设备登录。登录成功后,我需要更新生成设备ID在单独的电话?或使用用户名,密码和设备ID登录?因为在OAuth登录中,我无法传递设备ID。 –

+0

是的,你需要更新设备ID在一个单独的电话。 –

+0

用户是否可以通过登录以编程方式滥用应用程序来调用我们的后端? –

相关问题