【发布时间】:2022-11-11 13:44:09
【问题描述】:
我是 React Native 的新手,我正在尝试使用 Azure AD B2C 和 react-native-app-auth 授权我的应用程序。
当系统浏览器正在启动并且我可以登录时,我正在努力使用正确的应用程序方案重定向回应用程序。
Android 上大多数基于 Azure 的文档
(like here、here 和 here)指示我将签名和方案用作AndroidManifest.xml 中的活动,以便应用程序可以响应流程。
<activity
android:name="com.microsoft.identity.client.BrowserTabActivity">
<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="msauth"
android:host="Enter_the_Package_Name"
android:path="/Enter_the_Signature_Hash" />
</intent-filter>
</activity>
但是react-native-app-auth(如here 和here)的React Native 文档说我只需要在android/app/build.grandle 文件中设置appAuthRedirectScheme。
我不确定哪种方法合适,理论上这应该不难。但是当我尝试任何一种方法时,我要么在成功登录后没有响应(即重定向可能发生但应用程序没有监听),要么应用程序完全挂起。
关于如何使重定向起作用有什么明确的方向吗?
更新
我通过react-native-app-auth 阅读文档
方案是 OAuth 重定向 URL 的开头,直到方案分隔符 (:) 字符。例如。如果您的重定向 uri 是 com.myapp://oauth,那么 url 方案将是 com.myapp。方案必须是小写的。
这似乎与方案是包名称的其他 Azure 文档的工作方式不同。就我而言,我不得不将方案更改为
msauth。
manifestPlaceholders = [appAuthRedirectScheme: 'msauth']这可行,但这不会与其他应用程序冲突吗?最佳实践说我应该使包名称唯一,保持 RedirectUri 唯一。但是如果scheme设置为
msauth,会不会和其他app冲突?
【问题讨论】:
标签: android azure react-native redirect