-1

我想在我的应用程序中使用AppAuth-Android进行 openID 登录。

我的问题是,无论我如何为 Android 创建客户端 ID,我都会继续收到 redirect_uri 400 错误。为 Android 添加客户端 ID 并不能清楚地显示 redirect_uri 是什么或需要是什么,当我只使用我的应用程序的包名称时,我最终会得到一个 redirect_uri_mismatch。

为 Android 添加客户端 ID 并不能清楚地显示 redirect_uri 是什么或需要什么

我浏览了 google 创建的codelabs 教程,一切看起来都很简单。

但是,既然我正在尝试在我的应用程序中设置所有内容,那么没有足够的详细信息来确切说明需要采取哪些步骤来创建适用于我的应用程序中的自定义方案的 client_id 和 redirect_uri。

这是一张幻灯片的图片,它假设我将能够正确创建一个 client_id: 准确描述我需要更多详细信息的步骤

我从谷歌找到了很多关于如何做的建议的文档,但没有一个包含足够的细节来让我解决这个问题,我已经花了太多时间来解决这个问题。我在这里找到的最有用的页面是OAuth2 for Mobile & Desktop部分

谁能提供在Google 的 API 凭据管理器中为我现有的 android 应用程序创建一个 client_id 的确切步骤,该应用程序能够以与上面引用的 codelabs 教程完全相同的方式工作?

4

1 回答 1

1

结果证明这是复制/粘贴 client_id 的问题,我太专注于与 redirect_uri 相关的错误消息,无法在没有长时间休息的情况下弄清楚。

以下是我可以澄清的一些事项,以防其他人最终因同一问题而陷入困境。

为了解决我遇到的 redirect_uri 问题,我回过头来确保:

  1. 客户端 ID 与 google api 控制台中的 ID 匹配,并且 google api 控制台具有我的应用程序的正确包名称。

    “com.examplepackagename”

  2. 我的清单中声明的​​自定义方案直接匹配应用程序的包名称。

    <activity
        android:name="net.openid.appauth.RedirectUriReceiverActivity"
        tools:node="replace">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data android:scheme="com.examplepackagename"/>
        </intent-filter>
    </activity>
  1. 应用程序传递的重定向 uri 遵循代码实验室的示例,格式如下

“com.examplepackagename:/oauth2callback”

于 2017-04-13T17:23:50.690 回答