我正在使用cordova在移动的上运行一个angular应用程序(目前是android),这个应用程序使用auth0,一个oauth2提供程序来进行身份验证,它在web上运行良好,因为提供程序在身份验证后重定向到带有令牌的回调url,并且web应用程序使用接收到的参数重新启动。
在移动的上,第一次尝试时,应用程序打开了外部浏览器进行登录,显然无法返回应用程序。然后我在config.xml中使用了<allow-navigation href="https://[my domain].eu.auth0.com/*"/>
。现在身份验证在应用程序内进行,但回调url是https://localhost/index.html?code=[token]
,应用程序无法识别它自己。
我怎样才能让cordova应用程序理解该url必须由它来处理,或者选择正确的回调url?
1条答案
按热度按时间k2fxgqgv1#
移动的应用需要遵循RFC8252的建议,使用基于重定向URI的自定义方案,如
com.mycompany.myapp:/callback
。也可以使用HTTPS方案,但这需要注册app / universal链接。这通常被称为AppAuth模式。请参阅我的博客文章以了解介绍:在Cordova上,这将需要一个plugin,虽然我不知道是否有一个好的可以直接插入的,而且有可能你需要自己编写一个。这是像Cordova这样的技术栈可能存在问题的领域之一,因为底层行为是原生技术。