Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为React Native Bare工作流指定重定向URI_Android_React Native_Auth0 - Fatal编程技术网

Android 如何为React Native Bare工作流指定重定向URI

Android 如何为React Native Bare工作流指定重定向URI,android,react-native,auth0,Android,React Native,Auth0,我刚刚开始使用简单的工作流(不使用Expo框架)构建React本机移动应用程序。 我已成功将我的应用程序上的登录和注销系统与react-native-auth0依赖项集成。然而,为了控制对每个端点的访问,我正在努力通过API授权为经过身份验证的用户获取令牌 我根据Auth0文档使用PKCE跟踪授权代码流。除了标题前面提到的重定向uri之外,我几乎所有的东西都工作得很好 我尝试使用expo auth session依赖项手动指定uri,如下所示 const redirectUri = AuthSe

我刚刚开始使用简单的工作流(不使用Expo框架)构建React本机移动应用程序。 我已成功将我的应用程序上的登录和注销系统与react-native-auth0依赖项集成。然而,为了控制对每个端点的访问,我正在努力通过API授权为经过身份验证的用户获取令牌

我根据Auth0文档使用PKCE跟踪授权代码流。除了标题前面提到的重定向uri之外,我几乎所有的东西都工作得很好

我尝试使用
expo auth session
依赖项手动指定uri,如下所示

const redirectUri = AuthSession.makeRedirectUri({
    native: `${REDIRECT_URI}`,
    useProxy,
});

const params = {
    audience: `${AUTH0_API_AUDIENCE}`,
    scope: ['openid', 'profile', 'email', 'offline_access'],
    response_type: 'code',
    client_id: `${AUTH0_CLIENT_ID}`,
    redirect_uri: redirectUri,
    code_challenge: `${code_challenge}`,
    code_challenge_method: 'S256',
    state: `${state}`
};
但是,它返回的错误消息是

错误:找不到默认返回URL。如果您使用的是裸工作流,请提供
选项。returnUrl
。 getDefaultReturnUrl@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:179940:24 星同步$@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:177411:84

我已经用npx uri方案列表检查了我的uri。 目前,我有一个
${applicationId}://
。 这是否等同于重定向uri,不是吗

我也检查过了。 然而,这一定与Android原生应用开发有关?! 不管怎样,有谁以前使用过相同的体系结构吗?在哪里可以为使用React Native构建的Android应用程序指定重定向URI? 我认为AuthSession API在裸工作流中不受支持。尽管文档强调了这一点,但它也清晰地阐述了裸工作流的演练,我试了一下。但是,它不工作,并抛出了一个错误


我相信这应该用本地的方式来做?!?JAVA我正在努力寻找解决方案,甚至不知道该去哪里寻找。我非常感谢你的帮助!:-)

免责声明:我对React Native(实际上也不熟悉mobile)并不熟悉,但我确实知道一些关于OAuth和OIDC的事情,而且我过去使用过Auth0,所以这里有一些想法,希望对您有所帮助

我已经用npx uri方案列表检查了我的uri。目前,我有一个${applicationId}://。这是否等同于重定向uri,不是吗

根据Auth0文档,回调URL(即重定向到本地设备的URL)应该类似于
{YOUR_APP_PACKAGE_NAME}://${YOUR_Auth0_APP_NAME}.Auth0.com/android/{YOUR_APP_PACKAGE_NAME}/callback
所以我的理解是,
${applicationId}://
并不等同于重定向URL,而只是它的前缀

您是否尝试过使用
${applicationId}://{YOUR_AUTH0\u APP_NAME}.AUTH0.com/android/${applicationId}/callback

(用AUTH0项目名称的实际值替换
${YOUR_AUTH0_APP_NAME}

免责声明:我对React Native(实际上也不熟悉mobile)不太熟悉,但我确实知道一些关于OAuth和OIDC的事情,而且我以前使用过AUTH0,所以这里有一些想法,希望对您有所帮助

我已经用npx uri方案列表检查了我的uri。目前,我有一个${applicationId}://。这是否等同于重定向uri,不是吗

根据Auth0文档,回调URL(即重定向到本地设备的URL)应该类似于
{YOUR_APP_PACKAGE_NAME}://${YOUR_Auth0_APP_NAME}.Auth0.com/android/{YOUR_APP_PACKAGE_NAME}/callback
所以我的理解是,
${applicationId}://
并不等同于重定向URL,而只是它的前缀

您是否尝试过使用
${applicationId}://{YOUR_AUTH0\u APP_NAME}.AUTH0.com/android/${applicationId}/callback

(用AUTH0项目名称的实际值替换
${YOUR_AUTH0_APP_NAME}

嗨,塞巴斯蒂安!谢谢你的回答。我花更多的时间调查这个问题,我可能不得不放弃Auth0,这似乎不是一个很好的选择,随着世博会。我找不到这两个技术堆栈的许多用例和许多不确定的方面。此外,由于我缺乏身份验证和本机开发方面的知识,在裸机模式下根本找不到returnUrl(即使我在运行一个简单的代理服务器后成功地获得了代码)。所以我又回到了管理模式。哈哈,但是,正如我提到的,我认为它们是不兼容的,因为expo不支持Auth0 Greatl我不熟悉expo来评论这一点,但简而言之,要使它在移动设备上工作,你需要你的应用程序能够“读取”重定向的URL,例如,当像
{applicationId}://anything
这样的URL被打开时,它应该由你的应用程序打开。此重定向URL是身份提供程序(例如Auth0)返回身份验证代码的位置。然后客户端(您的应用程序)可以查询Auth0(使用PKCE代码)以最终获得auth令牌。OpenID Connect(与Auth0或其他提供商)的此流将始终相同这就是易受攻击的“公共”端(用户auth+网页)从不携带完整身份或访问令牌的原因,只有可以在安全通道上使用的身份验证代码才能最终获得您的代码代表最终用户进行呼叫(或收集关于他们的身份信息)Tl:DR:必须始终提供重定向URL,并且必须是Auth0应用程序的“允许的回叫URL”设置中允许的URL之一。(此允许列表必须包含准确的URL:无通配符,完整路径)是的,从代理服务器获取授权代码是成功的。然而,我无法在简单的工作流程中处理returnUrl。我怀疑这可能与安卓系统中的深度链接或其他东西有关。由于我没有太多的本地移动开发经验,也无法在网上找到太多有用的信息,我不得不放弃简单的工作流程。现在我回到了管理工作流程。如果它是一个网络,我可以很容易地得到它