使用Android AccountManager对服务器的用户进行身份验证

gno*_*bal 20 authentication android facebook

我正在编写一个具有服务器连接的Android应用程序.我想在Android设备上验证应用程序的用户,让服务器知道这已经完成.

假设用户有:

  1. 在Google和Facebook的Android设备中输入了他/她的凭据(这些是我目前感兴趣的)
  2. 允许应用程序使用Android设备上存储的凭据
  3. 申请收购了Android的细节(用户帐户和令牌)AccountManager成功

我现在想要正确安全地让服务器知道设备上的应用程序已经对用户进行了身份验证.服务器如何验证这不是假的?有没有办法在服务器上使用Google和Facebook验证令牌而无需用户交互?

谢谢.

Kum*_*bek 0

尽管使用检索到的令牌并将其保存或将其传输到服务器可能不是一个好主意,但可能还有其他方法可以让服务器知道身份验证已完成。

它可能不是一种防填充方法,但根据您的用例,它可能会起作用。

  1. AccountManagerFuture 接口有一个回调 isDone(),它表示现在您可以检索您的令牌。这本质上意味着,在用户授予您的应用程序使用特定帐户的权限后,身份验证已经发生。

  2. 另外,如果您在代码中使用 AccountManagerCallback,则在您尝试检索帐户的令牌后,您可以在代码中知道身份验证已发生。

在这两种情况下,您都必须调用您的服务器,让它知道身份验证已发生。我真的不知道您是否也需要将令牌发送到您的服务器。但是,如果你愿意,我想你可以这么做。