首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AppAuth登录重定向在iOS上有效,但在安卓上无效

AppAuth登录重定向在iOS上有效,但在安卓上无效
EN

Stack Overflow用户
提问于 2020-06-24 04:19:18
回答 2查看 1.2K关注 0票数 2

我正在用Flutter/Dart开发一个移动应用程序,目前我正在研究身份管理,特别是登录功能。我正在使用一个名为flutter_appauth的库,它是AppAuth库的包装器。我有一个奇怪的问题,只有在Android上才会发生,在用户成功登录后,不会发生重定向。如果用户在成功登录后重新打开登录页面,则在WebView中会出现一个空白屏幕(可能是因为浏览器使用户保持登录状态)。我的应用程序的身份验证流程是:应用程序->登录页面2FA ->应用程序的->身份提供者。这是在iOS上发生的事情,但不会从安卓上的ID提供程序重定向回来。应用程序停留在已完成的身份验证页面上。我使用的身份提供者是PingID。

这个库通过允许您简单地定义重定向方案来处理重定向,重定向方案只是重定向URI的前缀部分。我在app/build.gradle文件中正确地定义了重定向方案以及重定向URI,如下所示:

重定向URI: AppName:/callback

代码语言:javascript
运行
复制
defaultConfig {
    applicationId "io.example.AppName"
    minSdkVersion 16
    targetSdkVersion 29
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    manifestPlaceholders = [
            'appAuthRedirectScheme': 'AppName'
    ]
}

我在插件的GitHub上发表了一篇文章,你可以看看here。该插件的作者指出,如果方案名称和重定向URI是相同的,那么我的问题就出在其他地方。因为我的代码在iOS上工作,并且我对两个平台的重定向方案使用了相同的名称,所以我想我的问题不是我错误地定义了重定向方案。一切都可以在iOS模拟器上完美地工作。我已经在4个不同的Android设备和4个不同的API版本上测试了它,我在所有这些设备上都有相同的问题。我也尝试过为RedirectUriReceiverActivity定义一个意图,但我的问题仍然存在。

我是Flutter,Mobile Dev和IdM的新手,所以我希望能得到一些指导。Chrome和Safari之间,或者iOS和安卓之间有什么不同,可能会阻止这种重定向的发生吗?在过去的4天里,我一直在互联网上寻找解决方案,但我还没有找到一个,所以我几乎没有任何线索了。有什么建议吗?

编辑:我终于让它工作了!希望这能帮助将来解决这个问题的任何人。事实证明,我所要做的就是将appAuthRedirectScheme的方案名称设置为完全小写的字符串。因此,即使我的重定向URI是AppName:/callback,我也必须将appAuthRedirectScheme设置为AppName而不是appname。这让它工作起来了。

EN

回答 2

Stack Overflow用户

发布于 2020-06-24 04:36:21

我看到你的生长激素问题报告了。我也使用AppAuth。在我加入自己的应用程序之前,我完全测试了它附带的示例应用程序:

https://github.com/MaikuB/flutter_appauth/tree/master/flutter_appauth/example

您是否替换了所有示例变量等,并确认所有这些都可以在iOS和安卓上运行?

可以回到基础并使用示例应用程序,如果您仍然有问题,您可以添加到您提出的问题,并将示例与您自己的应用程序进行比较。

在生活中,它通常是一个打字错误或权限:-)

谢谢。

票数 1
EN

Stack Overflow用户

发布于 2020-09-13 15:58:09

经过几个小时的故障排除,这才解决了我在安卓上的问题,而不是iOS。很高兴知道build.gradle是区分大小写的。学到的教训。

代码语言:javascript
运行
复制
manifestPlaceholders = [
        'appAuthRedirectScheme': 'appname'
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62543099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档