不需要 google 登录即可执行 android 端点身份验证?

Don't need google sign in to do android endpoint auth?

所以我在玩 google 登录和端点身份验证。弄清楚了一切,可以使用

找到身份验证
credential = GoogleAccountCredential.usingAudience(context, "server:client_id:fakewhateverstring.apps.googleusercontent.com");
    credential.setSelectedAccountName("whatever@gmail.com");

我注意到我根本不需要 google 登录。我尝试注释掉所有 google 登录代码,并输入我在模拟器上使用的帐户的任何电子邮件。它奏效了。对我来说似乎很不安全。有没有更好的方法来做到这一点需要 google 登录而不是 phone 帐户中已有的一些电子邮件地址?

它的工作方式是这样的:当用户在客户端使用google账号登录时,API方法中的User对象会被注入到API 后端方法。然后您有责任检查 User 对象是否为 null 并抛出未经授权的异常。

根据我的测试,我发现如果用户已经在 Android 设备上使用他们的 Google 帐户登录,并且您按照对特定电子邮件的方式设置电子邮件,后端确实会注入那个 User 对象——毕竟,客户端已登录。

但是,如果您只是传入一个未登录的电子邮件,则不会注入 User 对象。

尝试一下,您会感受到它的真实性,并了解它实际上是如何安全的。