【问题标题】:How should I handle oauth2 callback uri in a cordova app?我应该如何处理 cordova 应用程序中的 oauth2 回调 uri?
【发布时间】:2023-02-10 16:36:37
【问题描述】:
我正在使用 cordova 在移动设备(目前为 android)上运行一个角度应用程序。
该应用程序使用 auth0,一个用于身份验证的 oauth2 提供程序。
它在 Web 上运行良好,因为提供程序在身份验证后使用令牌重定向到回调 URL,并且 Web 应用程序使用收到的参数重新启动。
手机端一开始尝试app打开外部浏览器登录,显然无法返回app。然后我在 config.xml 中使用了<allow-navigation href="https://[my domain].eu.auth0.com/*"/>。现在身份验证在应用程序内进行,但回调 url 是https://localhost/index.html?code=[token],应用程序无法识别它自己的。
我怎样才能让 cordova 应用程序理解该 url 必须由它处理,或者什么是正确的回调 url?
【问题讨论】:
标签:
cordova
oauth-2.0
auth0
【解决方案1】:
由于移动网络浏览器的限制,在 Cordova 应用程序中处理 OAuth 2.0 回调 URI 可能有点棘手。以下是可用于处理回调 URI 的通用方法:
-
重定向到自定义 URI 方案:要处理 Cordova 应用程序中的回调 URI,您可以将 OAuth 2.0 流重定向到由您的应用程序处理的自定义 URI 方案。例如,您可以使用诸如“myapp://oauth2callback”之类的 URI 方案。
-
注册自定义 URI 方案:在您的 Cordova 应用程序中,您需要注册自定义 URI 方案,以便您的应用程序能够处理重定向。您可以使用诸如 cordova-custom-url-scheme 之类的插件来执行此操作。
-
在您的应用程序中处理重定向:当 OAuth 2.0 流程重定向到您的自定义 URI 方案时,您的 Cordova 应用程序将收到回调。然后,您可以从 URI 的查询参数中提取授权代码或访问令牌,并使用它来完成 OAuth 2.0 流程。
-
使用应用内浏览器:或者,您可以使用应用内浏览器(例如 InAppBrowser)来处理 OAuth 2.0 流程。应用内浏览器提供独立于主 Cordova Web 视图的单独 Web 视图。然后,您可以将 OAuth 2.0 流程重定向到应用程序内浏览器,该浏览器将处理重定向并将授权代码或访问令牌返回到您的 Cordova 应用程序。
这些只是可用于在 Cordova 应用程序中处理 OAuth 2.0 回调 URI 的几种方法。您选择的具体方法将取决于您的应用程序要求和您使用的 OAuth 2.0 提供商。
如果您需要更多帮助,请告诉我
别忘了在这里订阅https://www.youtube.com/@lskit1651/videos