React native react native app auth中的重定向URL是什么?如何返回到我的应用程序?

React native react native app auth中的重定向URL是什么?如何返回到我的应用程序?,react-native,oauth-2.0,identityserver4,React Native,Oauth 2.0,Identityserver4,我是React本机开发领域的新手,我正在努力研究如何配置FormidableLabs的React本机应用程序验证插件,以便我们应用程序的用户可以登录到我们的Identity Server 4实现,然后返回应用程序 我可以很容易地访问登录表单,但在登录后,它会转到浏览器中的另一个Identity Server页面,而不是返回应用程序。我假设这是因为配置错误,但我已经在网络上搜索了很长一段时间,寻找一个答案,这个答案实际上解释了重定向URL应该指向什么——在所有示例中,它只指向io.identity

我是React本机开发领域的新手,我正在努力研究如何配置FormidableLabs的React本机应用程序验证插件,以便我们应用程序的用户可以登录到我们的Identity Server 4实现,然后返回应用程序

我可以很容易地访问登录表单,但在登录后,它会转到浏览器中的另一个Identity Server页面,而不是返回应用程序。我假设这是因为配置错误,但我已经在网络上搜索了很长一段时间,寻找一个答案,这个答案实际上解释了重定向URL应该指向什么——在所有示例中,它只指向io.identityserver.demo:/oauthredirect。是否可以重定向回应用程序

我还注意到,登录页面的原始请求没有向其传递ReturnUrl,该参数为null

我觉得我在这里遗漏了一些明显的东西,但我想不出是什么

以下是应用程序中的相关代码:

import {authorize} from 'react-native-app-auth';
...
const config = {
                    issuer: 'http://10.0.2.2:5000',
                    clientId: 'MyApp',
                    redirectUrl: '?? what goes here ??',
                    scopes: ['openid', 'profile', 'offline_access'],
                    serviceConfiguration: {
                        authorizationEndpoint: `http://10.0.2.2:5000/Account/Login`,
                        tokenEndpoint: `http://10.0.2.2:5000/connect/token`
                    }            
                }
                const result = await authorize(config);
Identity Server正在端口5000上运行(在我的pc上的localhost中)

有人能指出我做错了什么吗


提前谢谢

您的思路正确,一旦用户登录IdentityServer,它将重定向回
重定向URL


我建议您阅读示例代码中的说明。

重定向URI有两个主要选项,第一个选项更简单,但安全性稍差:

  • 基于私有URI方案:com.mycompany.myapp:/callback
  • 声明基于HTTPS方案:
为了使重定向返回到应用程序,您需要在Android/iOS系统中注册该方案

私有URI方案

我的文章应该使您能够快速运行标准示例,并使私有URI方案正常工作。然后,您可以在本机应用程序中设置类似的Android/iOS设置:

声明的HTTPS方案


这需要更多的努力,但我的博客也有Android/iOS示例,您可以在感兴趣的情况下运行和阅读。

Hi-我们已经非常彻底地阅读了文档,并且理解了重定向回URL的原理:对于在浏览器中运行的React.js应用程序,这一点非常有效。不过,我的问题是,对于运行在手机上的应用程序,它应该如何工作?返回应用程序的重定向URL的格式是什么?甚至有这样一个概念吗?@user3529977是的,有这样一个概念,基于OAuth 2.0对于本机应用程序,本机应用程序有两种与授权端点交互的方法:嵌入式用户代理和外部用户代理。最佳做法是通过外部用户代理,主要是用户的浏览器。rfc8252的第7节包含在本机应用程序中接收授权响应的选项,您可以选择最适合自己的选项。这是一本很好的读物,这是一个链接,可以很好地回答simalr的问题。另外,我应该提到这里的另一个答案非常好,它包含了一些选项的示例谢谢:这就是我要找的。考虑到这肯定是任何编写本机应用程序的人首先考虑的问题,我感到惊讶的是,这些信息如此难以找到。它应该出现在任何关于编写或保护应用程序的文章的第一页。