Identity Server 4/nativescript 挂起

2024-06-25

我有以下客户:

new Client
{
    ClientId = "nativeapptest",
    ClientName = "Native App Test",
    Enabled = true,
    RequireClientSecret = false,
    AllowedGrantTypes = GrantTypes.Code,
    RedirectUris = { "com.mysite.nativeapp.12365789785256-buv2dwer7jjjjv5fckasdftn367psbrlb:/home" },
    AllowedScopes =
    {
        IdentityServerConstants.StandardScopes.OpenId,
        IdentityServerConstants.StandardScopes.Profile,
        "MyScope"
    },
    RequirePkce = false,
    AllowOfflineAccess = true,
    RequireConsent = false
}

我正在使用本机脚本构建一个可以使用 Identity Server 4 登录的 Android 应用程序。当前发生的情况是,我通过打开浏览器并使用所有正确的 OpenID 配置向 IS4 发出请求,最终出现在登录屏幕上然后我选择使用谷歌登录。一旦进入谷歌,我输入我的电子邮件和密码,一切都很好,然后谷歌尝试将我发送回我的网站,但它只是挂起......它是一个没有加载任何内容的白色页面,它只是永远坐在那里,没有错误据我所知,is4 记录的消息。

上面的 nativescript 的登录部分来自 OAutho2 库https://www.npmjs.com/package/nativescript-oauth2 https://www.npmjs.com/package/nativescript-oauth2

我试图了解这是否是 IS4 或本机 Android 应用程序的问题。页面挂起是因为它正在等待 Android 应用程序接管登录工作吗?也许问题出在 RedirectURI 方案上?

它挂在的URL如下:

EDIT:

由于我在实际服务器上运行它,因此我无法直接调试它,但是,我确实添加了日志来查看代码的运行情况。我的日志告诉我用户是通过谷歌和我的系统登录的,我的日志还显示ExternalCallback已将页面重定向到

/connect/authorize/callback?client_id=nativeapptest&response_type=code&redirect_uri=com.mysite.nativeapp%3A%2F%2Fhome&scope=openid%20profile%20MyScope&response_mode=query&state=abcd

此时,页面挂起。

请注意,我们将 RedirectUri 更改为 com.mysite.nativeapp 以帮助测试。

最后,我不确定这是否重要,但我们没有使用 https,因为这仍然是开发阶段。


刚刚找到了示例应用程序

Step 01

我们将打开一个运行窗口

在键盘上按

Windoes Key + R

wait

Step 02

我们将打开一个cmd窗口

在运行窗口中输入文本

cmd

在键盘上按

Enter

Step 03

我们将创建一个目录并将其作为我们的 cmd 的工作目录

在CMD窗口中写入

mkdir D:\Experiments\E.IDser.NativeScript

cd /d D:\Experiments\E.IDser.NativeScript

Step 04

我们将克隆示例项目

在CMD窗口中写入

git clone https://github.com/Elrashid/nativescript-client-and-identity-server-sample.git

cd nativescript-client-and-identity-server-sample

Step 05

现在将运行应用程序

在CMD窗口中写入

Start.bat

Step 06

如何使用

why

1    app
              +---+
                  |
     identity     |
2    server       |
                  |
                  |
                  |
3    google       +-+   user
                  |     intractiom
                  |
                  |       your
     identity     |       app
4    server       | <---+ stop
              +---+       here

5     app     +---+
                  |
                  |
                  |
     identity     +--+  background
6    server       |
                  |
                  |
7     app         |
               +--+

see 为 Android 注册自定义 URL 方案 https://github.com/alexziskind1/nativescript-oauth2#android

<data 
android:path="/home"
android:scheme="com.mysite.nativeapp
            .12365789785256-buv2dwer7
            jjjjv5fckasdftn367psbrlb"
/>

你也可以尝试

 tns debug android

Erorr 此网站无法打开

Identity Server 和 Native-Script 之间的通信

  • run

    nativescript-client-and-identity-server-sample/Start.bat
    
  • 不要跑 跑

    "nativescript-client-and-identity-server-sample/identity-server/Start.bat"
    "nativescript-client-and-identity-server-sample/nativescript-client/Start.bat"
    
  • NativeScript 应用程序应该在 Android 模拟器中运行

  • 身份服务器应在本地计算机的端口 5010 上运行

  • 检查你的windows您可以打开的浏览器

    http://localhost:5010
    
  • if yes

  • 检查您可以打开的 **android 模拟器 ** 浏览器

    http://10.0.2.2:5010
    
  • 10.0.2.2 是什么?

    Android 模拟器主机环回接口的特殊别名 https://developer.android.com/studio/run/emulator-networking

  • 我可以更改主机 10.0.2.2 的位置吗?

    打开nativescript-client\app\my-oauth-provider.ts

        public authority = "http://10.0.2.2:5010";
        public tokenEndpointBase = "http://10.0.2.2:5010";
        public cookieDomains = ["10.0.2.2:5010"];
    
  • change http://10.0.2.2:5010 http://10.0.2.2:5010到您的网址

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Identity Server 4/nativescript 挂起 的相关文章

  • Taglib:性能和崩溃问题

    我在 Qt 应用程序中使用 taglib 库 1 7 2 从音乐文件夹中读取 mp3 文件的一些元数据 问题是我发现它非常慢 例如 这是代码 QString path C Music QDir d path QStringList file
  • 使用可加载内核模块修改帧缓冲区(/dev/graphics/fb0)参数

    Problem 我必须配置 Android 平台使用的各种 LCD 显示器 几乎在所有情况下 都没有针对感兴趣的 LCD 显示器免费提供的电气规格 但通过经验和逆向工程 可以很好地猜测参数 我正在尝试使用可加载内核模块来微调显示参数 也欢迎
  • 为什么更新外键后引用约束会不一致?

    抱歉 这个模糊的标题很难用一句话来描述 我有 2 个实体User and UserAddress 其中 User 有 2 个外键DefaultInvoiceAddressId and DefaultDeliveryAddressId和 Us
  • MVC。网络错误:初始化字符串的格式不符合从索引 0 开始的规范

    我的连接字符串是
  • gets 和 scanf 有什么区别?

    如果代码是 scanf s n message vs gets message 有什么区别 似乎两者都获取消息的输入 基本区别 参考您的特定场景 scanf 遇到一个时结束接受输入whitespace newline or EOF gets
  • 运行时两个注册之间的简单注入器基于动态上下文的注入

    我有一个使用 Simple Injector 进行命令处理程序注册的中介应用程序 并且注入和处理程序均已设置并完美运行 class DoWashingCommandHandler IRequestHandler
  • 在异步方法中使用时 HttpClient 标头被清空

    我正在使用 NET Framework 4 6 1 我的 Web api 中有一个控制器 其中有静态 HttpClient 来处理所有 http 请求 在 IIS 上托管我的应用程序后 大约每月一次 我的应用程序的所有传入请求都会出现以下异
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • 错误 C2065:'cout':未声明的标识符

    我正在处理我的编程作业的 驱动程序 部分 但我不断收到这个荒谬的错误 错误 C2065 cout 未声明的标识符 我什至尝试过使用std cout但我收到另一个错误 IntelliSense 命名空间 std 没有成员 cout 当我宣布u
  • 将标准库添加到C++ eclipse项目中

    一个 非常 新手 C 问题 有没有办法自动将标准库添加到 C eclipse 项目中 我安装了 CDT 主要功能插件 您可以手动添加 STL 标头的路径路径和符号 gt 包含选项卡 http help eclipse org galileo
  • 在 C/C++ 中绘制填充椭圆的简单算法

    在SO上 找到了以下绘制实心圆的简单算法 for int y radius y lt radius y for int x radius x lt radius x if x x y y lt radius radius setpixel
  • 如何在 C++ 中从模板基类的构造函数调用模板超类的构造函数?

    我正在使用 sublimetext3 用 c 进行编程 我的程序有一个名为 Array 的超类和一个名为 IntArray 的子类 这两个类都是模板类 目前 我在编译该程序时遇到问题 它不断在我的 IntArray cpp 文件中给出错误
  • 内存不足异常

    我正在使用 C 和 asp net 开发一个网络应用程序 我一直收到内存不足的异常 该应用程序的作用是从数据源读取一堆记录 产品 可能是数百 数千 通过向导中的设置处理这些记录 然后使用处理的产品信息更新不同的数据源 虽然有多个 DB 类
  • 除法时的小数舍入误差 (C#)

    我基本上有四个数字 比如 100 200 300 400 我需要计算概率为 100 100 200 300 400 200 100 200 300 400 等等在 当我使用小数数据类型来存储这些概率时 由于舍入问题 它们不会达到 1 在不使
  • 如何在 Windows 8.1 上打开多个 Visual Studio 窗口? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我使用的是 Windows 7 我能够启动多个 Visual Studio 并同时工作 现在我有 Windows 8 1 操作系统 每当我
  • 没有类型的 IEnumerable 属性

    我正在尝试创建一个类似于来自 MSDN 的官方 DataGrid ItemsSource 的属性 public IEnumerable ItemsSource get set 这提供了对任何派生类中任何类型的支持 有了这个 我可以设置类似的
  • 如何进行平衡组捕获?

    假设我有这个文本输入 tes tR R abc aD mnoR xyz 我想提取 ff 输出 R abc R xyz D mnoR xyz R R abc aD mnoR xyz 目前 我只能使用平衡组方法提取组内的内容 如中所示msdn
  • 矩阵行列式算法 C++

    我是编程新手 我一直在寻找一种找到矩阵行列式的方法 我在网上找到了这段代码 但我很难理解这里的算法 我对递归的基础没有问题 但继续和主循环我很难理解 非常感谢任何可以向我解释该算法的人 int determ int a MAX MAX in
  • Task.Delay 到底是如何工作的?

    他们说 Task Delay 是一个异步 Thread Sleep 为了测试这一点 我写了下面的代码 我希望立即打印 One 然后 3 秒后将打印结果变量 15 2 秒后 将打印 Two 但似乎并非如此 一 不会立即打印 3 秒后打印 On
  • 64 位随机生成器种子

    我目前正在运行一个具有 8 个以上管道 线程 的多线程模拟应用程序 这些管道运行非常复杂的代码 该代码取决于种子生成的随机序列 然后该序列被归结为单个 0 1 我希望在将种子从主线程传递到处理管道后 这种 随机处理 具有 100 的确定性

随机推荐