Android 和 IOS 的 Ionic Auth 重定向问题

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

我正致力于在离子项目中使用 AzureAD 实现 oidc 身份验证。我们使用插件https://github.com/moberwasserlechner/capacitor-oauth2。根据说明进行设置后,我们在重定向期间遇到了问题。

  • 对于安卓: 它显示“不能不匹配任何路由。url段msauth”
  • IOS: 显示“Safari 无法打开页面,因为地址无效”

以下是相关配置:

  1. AzureAD 设置: 两个平台:
    带有 bundle id、签名哈希和重定向 url msauth://[bundleid]/[hash]
    的 android 带有 bundle id 和重定向 url msauth.[bundleid]://auth
  2. 的 ios

2.对于安卓 将以下配置添加到清单文件

             <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="${bundleid}" android:path="/${hash}" />
         </intent-filter>

3.针对ios 添加以下到 info.list

    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>bundleid</string>
            </array>
        </dict>
    </array>

4.然后是授权码

appId: {clientid},
      authorizationBaseUrl: `https://login.microsoftonline.com/{tenantid}/oauth2/v2.0/authorize`,
      scope: "openid offline_access email https://graph.microsoft.com/User.Read", // See Azure Portal -> API permission
      accessTokenEndpoint: token endpoint,
      responseType: "code token",
      pkceEnabled: true,
      logsEnabled: true,
      web: {
          redirectUrl: `website url`,
          windowOptions: "height=600,left=0,top=0",
      android: {
          redirectUrl: "msauth://bundle/signature",// See Azure Portal -> Authentication -> Android Configuration "Redirect URI"
          handleResultOnNewIntent:false,
          handleResultOnActivityResult:true
        },
     ios:{
        redirectUrl:msauth.bundleid://auth
     }
android ios oauth-2.0 azure-active-directory ionic-native
1个回答
0
投票

https://learn.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-angular-auth-code

如果您使用的是离子电容器,那么您也很可能会使用角度...有用于角度和构建组件的模块设计来处理..只需将/重定向回我认为的角度路径组件...我还没有尝试过

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