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



我刚刚开始用Bare工作流构建React Native移动应用程序(不使用Expo框架(。我已经成功地将我的应用程序上的登录和注销系统与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。如果您使用的是裸工作流,请提供options.returnUrl。getDefaultReturnUrl@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:179940:24startAsync$@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:177411:84

我已经用npx uri-scheme list检查了我的uri。目前,我有一个${applicationId}://。这会相当于redirect_uri吗?

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

我认为这应该以一种本土的方式来完成?!?Java语言我正在努力寻找解决方案,甚至不知道该从哪里寻找。我真的很感谢你的帮助!:-(

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

我已经用npx-uri方案列表检查了我的uri。目前,我有一个${applicationId}://。这会相当于redirect_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_APP_NAME}.auth0.com/android/${applicationId}/callback吗(将${YOUR_AUTH0_APP_NAME}替换为Auth0项目名称的实际值(?

最新更新