使用 React Native App 进行身份验证重定向(Azure B2C)

问题描述 投票:0回答:2

我是 React Native 新手,我正在尝试使用 Azure AD B2C 和 react-native-app-auth 授权我的应用程序。

当系统浏览器正在启动并且我可以登录时,我正在努力解决的是使用正确的应用程序方案重定向回应用程序。

Android 上大多数基于 Azure 的文档 (像这里这里这里)指导我使用签名和方案作为

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
的 React Native 文档(如 herehere)说我只是需要在
appAuthRedirectScheme
文件中设置
android/app/build.grandle

我不确定哪种方法合适,理论上这应该不难。但是,当我尝试任一方法时,我要么在成功登录后没有得到任何响应(即可能发生重定向,但应用程序没有监听),要么应用程序完全挂起。

关于如何使重定向发挥作用,有明确的指示吗?

更新

我通过

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
2个回答
1
投票

手动更改清单菜单中 Azure 自动生成的重定向 URI 很有帮助。

在 UI 上的 JSON 清单中,在

replyUrlsWithType
键下查找 Android 的重定向 URI。

msauth://package-name/signature-hash
更改为
package-name://msauth/signature-hash
。单击“保存”按钮保存文件。

build.gradle
文件中,您可以使用您的包名称。

android {
    // ...
    defaultConfig {
        // ... 

        manifestPlaceholders = [
          appAuthRedirectScheme: "package-name"
        ]
    }
    // ...
}

0
投票

我想知道如何使用 Azure AD b2c 登录 - 在移动应用程序的 Azure 应用程序注册中应该重定向 uri。急需请帮忙

© www.soinside.com 2019 - 2024. All rights reserved.