使用桌面应用程序处理Cognito OAuth2访问代码 [英] Cognito OAuth2 access code handling with a desktop app

查看:16
本文介绍了使用桌面应用程序处理Cognito OAuth2访问代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个命令行应用程序,我希望使用带有访问代码流和托管登录UI的OAuth2针对AWS Cognito进行身份验证。对于类似的情况,Google Cloud使用http://localhost:N重定向URI显式recommend文档,以便应用程序在认证后可以处理访问码:

此授权流程类似于用于Web服务器应用程序的流程。主要区别在于,安装的应用程序必须打开系统浏览器并提供本地重定向URI来处理来自Google授权服务器的响应。

但是,对于Cognito,只允许/推荐使用localhost URI进行测试:

另一种解决方案是使用浏览器外&Quot;URIurn:ietf:wg:oauth:2.0:oob在浏览器中显示访问代码,并让用户将其复制粘贴到应用程序中,但Cognito似乎不支持它。

目前,我倾向于运行一个自定义的OAuth2回调处理程序,该处理程序只会告诉用户复制粘贴访问代码,但我觉得从Cognito方面看它并不友好。

所以,问题是:

  1. 使用Cognito验证桌面/命令行应用的建议方式是什么,并将用户干扰降至最低?
  2. 如果忽略Cognito关于本地主机重定向URI的建议,会出现什么问题?

推荐答案

环回URI

在桌面应用中,您可以使用localhost HTTP URL接收授权响应,这是一种有效的技术。

Cognito警告是关于使用本地主机URL进行Web应用程序响应,当然这只适用于开发人员PC。 您可以在使用环回桌面应用程序时忽略该警告。

浏览器外URI

这是几年前用来从Web视图读取授权响应的,在OAuth for Native Apps中不再推荐使用。

私有URI方案

第二个有效的选项是我更喜欢的选项,因为它感觉更完整。它包括通过以下形式的URL接收授权响应,并将方案注册到操作系统以指向您的应用程序:

  • com.mycompany.mydesktopapp:/callback

矿山资源

如果有帮助,我有几个使用Cognito的桌面示例/博客文章。您可以在您的PC上运行示例,看看您喜欢哪一个:

这篇关于使用桌面应用程序处理Cognito OAuth2访问代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆