问题标签 [appauth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1708 浏览

java - 使用 OpenId AppAuth-Android 库时具有隐式意图的 PendingIntent 返回取消的异常

我正在尝试实现 oauth2 以使用户能够使用 Reddit 登录。我已经使用适当的重定向 uri 在 reddit 上创建了我的应用程序。

我做了什么: 一个带有登录按钮的 MainActivity。单击登录按钮,启动授权流程。要创建授权请求,我们需要传递一个挂起的意图,库使用该意图来调用我们希望它在授权成功后调用的适当组件。

问题: 当使用隐式意图(在创建意图时仅设置操作字符串)生成待处理意图时,库在调用待处理意图时会收到取消的异常。我还在清单文件中提到了 MainActivity 的意图过滤器中的操作字符串。

我尝试过的: 1. 我尝试使用显式意图创建待处理的意图(定义我在创建意图时要打开的活动类),我的活动的 onStart 正在以正确的意图被调用。2.我尝试通过直接从活动本身调用未决意图(具有隐含意图)并成功调用它。

观察: 1. 如果我使用旧版本的库(v0.2.0),带有隐式意图的待处理意图可以正常工作。

当前版本的 OpenId AppAuth 库 - 0.7.1 在 Android 9 (Pie) 上测试 - OnePlus 3T

下面是我的 MainActivity.java

清单文件:

库的相关部分 - mCompleteIntent 是我发送到库的 PendingIntent

0 投票
1 回答
1209 浏览

ios - iOS 12 - AppAuth 重定向 URL 不触发 AppDelegate

我正在使用AppAuth我的代码。

我设法验证成功,但是当SFSafariViewController gets dismiss from my Controller重定向 url 没有触发AppDelegate func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool

重定向 URL 是我的 Bundle Identifier 名称:BundleIdentifier://authenticate

我在 info.plist 中设置了 url 方案和 url 标识符,它们具有相同的名称。

当我运行我的代码在这个函数上设置一个断点时,我可以看到我的重定向 url 正确,standarizedURL并且standarizedRedirectURL

但是当 AppAuth 完成身份验证并且我有一个access token, 时func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool不会被触发。

知道为什么吗?

这是我的代码

0 投票
0 回答
313 浏览

react-native - 如何在裸 React Native 应用程序中使用 Expo.AppAuth 实现 Google 身份验证?

我正在尝试在我的反应原生裸应用程序(不由 Expo 管理)中使用 Expo.AppAuth 实现 Google 身份验证。
我正在使用 expo-app-auth 包。
我使用以下捆绑 ID“org.reactjs.native.example.MyApp”在 Google Developer Console 上创建了一个客户端 ID,

这是我的代码:


上面的代码重定向到 Safari 并给出以下错误:


我会很感激你的帮助。

0 投票
1 回答
770 浏览

android - 如何修复“活动已泄漏 ServiceConnection net.openid.appauth.browser.CustomTabManager$1@41fb56d0 最初绑定在这里”错误

我正在设置我的 android 应用程序以使用身份验证,并且我正在关注 AppAuth for Android 上的文档。到目前为止,我已经能够连接身份服务器并向身份服务器发出请求,并返回包含我在请求中发送的大部分数据等的响应。我应该用我的代码交换访问令牌。这是我的问题。我实际上是在 github 页面https://github.com/openid/AppAuth-Android上复制和粘贴代码,但它却因上述错误而崩溃。我对 android 比较陌生,这是我在这里的第一个问题,如果我没有很好地提出我的问题,请放轻松。谢谢你。

Android Studio 说导致此错误的代码是“authService.performTokenRequest()”。我环顾四周,有些人通过在“onDestroy()”中调用“authService.dispose()”解决了这个问题,但这也因“执行 doInBackground() 时发生错误”而崩溃。下面是导致错误的代码。

在我的“onCreate()”中,这就是我所说的。

0 投票
1 回答
1299 浏览

android - 如何在 android app auth 中为 Oauth 2.0 设置深层链接

我必须在我的应用程序中实现 OAuth 2.0,并且我正在使用 AppAuth 库。我已成功实施授权,但面临深度链接问题。

这就是我设置重定向接收器活动的方式,我的目标活动设置为android:launchMode= "singleInstance". 我的重定向 Uri 是connect.example.com:/oauthcallback.

当我在清单中使用“host”而不是“pathPrefix”时,登录后我无法返回我的活动。但是当使用路径前缀时,我可以在登录后返回我的活动,但我无法检索我的意图。它总是返回 null。有谁知道我如何connect.example.com:/oauthcallback在我的清单中使用这个重定向 Uri 并在授权后检索意图?

0 投票
2 回答
454 浏览

react-native - Google OAuth 无法在 react-native-app-auth 中使用

此代码来自google oauth 示例

但是,在登录并被重定向到应用程序后,我收到一个错误:

client_secret is missing

react-native android错误 添加clientSecret到配置可修复 iOS 上的问题。但是,在 android 上,添加clientSecret不允许我使用 google 登录,而是加载此错误页面,说client_secret不允许。

谷歌无效请求页面

所以这有点像第 22 条规则。如果我提供 clientSecret,我会收到来自 google 的无效请求错误并且无法进行身份验证。如果我不提供它,我会在验证后收到“client_secret is missing”错误。

0 投票
0 回答
181 浏览

react-native - 如何使用 react-native-app-auth 包在令牌交换请求的正文中传递 client_id 和 client_secret?

我正在尝试使用其他出色的react-native-app-auth来处理我正在开发的应用程序的 OAuth 部分。

我正在联系的服务器希望将client_idclient_secret包含在令牌交换 POST 请求的正文中,但它没有被包含在内,因此总是导致 401 未经授权的响应。

我已经尝试了文档中指定的许多不同的配置选项,例如在 and 中传递 client_id 和additionalParameterssecret customHeaders

预期是带有新身份验证和刷新令牌的 200 响应。相反,我得到了“参数”client_secret”和“client_id”丢失。

0 投票
1 回答
500 浏览

android - Android AppAuth - 遵循 PendingIntent 对象

我一直在尝试在 Android 中实现 Google 的 AppAuth 库,但我很难让它发挥作用。我一直在尝试遵循Google 的指南并将其应用到我自己的代码库中,但我陷入了悬而未决的意图。

更具体地说,当我调用该performAuthorizationRequest()方法时,模拟器可以按照重定向在其自定义选项卡中获取身份验证代码(我可以看到它)。但是,没有调用任何处理程序。我试过添加onNewIntent()onActivityResult()onResume()没有一个被调用。

从 Javadocs 中performAuthorizationRequest(),我看到

“将调用提供的 {@link PendingIntent 完成 PendingIntent}”。

这意味着什么?如何与已完成的 pendingIntent 对象进行交互?有什么方法可以在创建待处理意图时使用发送的请求代码检索该上下文?

下面是我的代码:

在我的清单中,我添加了活动:

0 投票
1 回答
555 浏览

javascript - 无法读取未定义的 react-native-app-auth 的属性“授权”

尝试此包的示例代码时出现错误。我看了几个主题或 Github 问题,但似乎没有解决方案有效

https://github.com/FormidableLabs/react-native-app-auth/tree/master/Example/AndroidExample

TypeError:无法读取未定义的属性“授权”。

0 投票
1 回答
660 浏览

oauth-2.0 - AppAuth 寻找什么响应来关闭浏览器窗口并完成请求?

我正在尝试使用 AppAuth 从 Instagram 获取身份验证代码,重定向到我的服务器,并将该身份验证代码交换为自定义 Firebase 令牌。我在将数据传递给 AppAuth 并触发浏览器窗口关闭时遇到问题。

到目前为止有效的方法

  1. 移动应用注册自定义方案,myscheme:/
  2. AppAuth 命中 Instagram 授权端点,接收有效code,重定向到https://myserver.com
  3. AppAuth 命中https://myserver.com,提供code,正在等待响应
  4. 我的服务器访问 Instagram 令牌端点,交换code/etc 以获取有效token
  5. 我的服务器使用它token来铸造一个有效的Firebase token

此时 AppAuth 浏览器窗口已打开并等待来自我的服务器的响应。服务器有Firebase token. 所需的下一步是将此令牌提供给 AppAuth 并让 AppAuth 关闭浏览器窗口并完成该过程。

我试过的:

  1. 返回重定向到myscheme:/instagram?token=Firebase token

这将关闭 AppAuth 浏览器窗口,但该过程未完成,因此 AppAuth 不返回任何结果。即使浏览器窗口关闭,它也会继续等待。

  1. 设置自定义方案侦听器并重定向到myscheme:/instagram?token=Firebase token

这与 1 具有相同的结果。但是自定义方案侦听器不会捕获此事件,即使捕获了,我也无法取消 AppAuth 进程。这充其量感觉很hacky。

进一步提炼问题:

AppAuth 需要什么来关闭浏览器窗口并完成握手?它在寻找什么?