【问题标题】:OAuth only working for some google accounts?OAuth 仅适用于某些谷歌帐户?
【发布时间】:2018-10-10 00:00:27
【问题描述】:

哎呀。一定要喜欢 OAuth...

TLDR;我设法从我能找到的唯一一个 android 日历 API 示例项目中拼凑而成的 OAuth 2.0 代码仅适用于少数帐户。

我有一半的朋友点击他们的 Gmail 的灰色对话框并选择他们的帐户,然后出现请求同意的白+蓝屏幕,然后砰!事件是从谷歌日历中获取的。

我的另一半朋友在他们的 Gmail 中点击灰色对话文本,但没有出现同意屏幕,它只是闪现与他们的 Gmail 的灰色对话,提示他们再次选择他们的帐户。

这是拼凑的代码:

我的活动 java: https://pastebin.com/mcxLfGZR

no code pasted because its very long

与之配套的 Apisynctask.java: https://pastebin.com/p7Wx2Lm2

no code pasted once again

我的 Activity.xml: https://pastebin.com/KELRqYHD 和(一起去,因为 android studio 模板......) https://pastebin.com/Bbev37ye

no code pasted once again because long-ish

我认为这可能与安卓版本、谷歌帐户或设备相关,根本无法缩小范围。

无论如何,我希望能提供任何帮助以使其适用于所有人,而不是像我说的那样只适用于少数人,它只适用于我和我一半的朋友。谢谢!

编辑: 当重新弹出 logcat 时,不会在 logcat 中引发错误。代码到处跳转,(我尝试将日志消息放入每个代码块中,以查看它的去向以及失败的地方 - 没有尽头)

【问题讨论】:

    标签: java android android-studio oauth-2.0 google-calendar-api


    【解决方案1】:

    您可以设置Authorization parameters创建授权请求。

    您可以 prompt 用户重新授权您的应用,方法是添加 prompt=consent 身份验证请求的参数。什么时候 包含prompt=consent,每次都会显示同意画面 用户登录到您的应用程序。出于这个原因,包括prompt=consent 仅在必要时。

    prompt

    可选。向用户显示的以空格分隔、区分大小写的提示列表。如果不指定此参数,用户将 仅在您的应用第一次请求访问时提示。可能的 值是:

    • none - 授权服务器不显示任何身份验证或用户同意屏幕;如果用户尚未通过身份验证并且没有为请求的范围预先配置同意,它将返回错误。您可以使用 none 检查现有的身份验证和/或同意。
    • consent - 授权服务器在向客户端返回信息之前提示用户同意。
    • select_account - 授权服务器提示用户选择用户帐户。这允许在授权服务器上拥有多个帐户的用户在他们可能拥有当前会话的多个帐户中进行选择。

    注意:如果未指定任何值且用户之前未授权访问,则会向用户显示同意屏幕。

    【讨论】:

    • 我还是一头雾水?这也适用于 Android Java?
    • 抱歉造成混淆,这是针对 openID 连接的 - 允许所有类型的客户端(包括基于 Web、移动和 JavaScript 的客户端)请求和接收有关经过身份验证的会话和最终用户的信息。
    猜你喜欢
    • 2013-11-28
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2020-09-13
    相关资源
    最近更新 更多