适用于桌面和移动应用程序的 OAuth 2.0

2023-11-22

我正在研究 OAuth 2.0 协议。

我陷入了为不在 Web 服务器上运行的桌面/移动应用程序生成不记名令牌的问题。

对于 Web 应用程序,我很清楚 OAuth 2.0 协议流程。认为myapp.com想要访问protectedresource.com代表用户 Alice,然后 Alice 被重定向到https://protectedresource.com/oauth?redirect_uri=https://myapp.com/oauth&[...]因此,资源管理器在获得同意后,会将 Alice 的浏览器重定向到一个页面,该页面将收集授权代码并使用它来获取不记名令牌。

这工作正常且安全,因为protectedresource.com认识到myapp.com域并仅向来自以下位置的请求释放不记名令牌myapp.com

如果我正在运行桌面应用程序,即使有浏览器的支持(即在 Windows 窗体或类似的东西中嵌入 HTML 查看器)同意后我应该将 Alice 重定向到哪里?

谁收集授权码?控制流程如何变化?

有人有在桌面或 Android 上运行的 OAuth 2.0 实现示例吗?


The OAuth wiki 列出了众多选项你可以使用,所有这些都有缺点。 最简单的方法是运行一个可以向用户显示令牌的 Web 应用程序,然后用户将令牌(可能还有刷新令牌)复制到您的桌面应用程序中。

如果您有足够的时间,那么您可以研究向桌面操作系统注册自定义 URI,然后将其用作redirect_uri自动从浏览器传输回您的应用程序。这具有最佳的用户体验。

在这些情况下,恶意应用程序可以轻松冒充您的桌面应用程序,而安全性依赖于您的用户不安装恶意应用程序。

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

适用于桌面和移动应用程序的 OAuth 2.0 的相关文章

随机推荐

  • 无法让自定义存储库工作

    我正在遵循 Symfony2 教程 第 4 章 但我在检索时遇到问题getLatestBlogs我的自定义存储库中的方法 我在 Linux Mint 上使用 Symfony 2 2 和 Phar 我自己创建了存储库 但我很困惑 我收到此错误
  • 如何将焦点设置到已经处于运行状态的应用程序?

    我开发了一个 C Windows 应用程序并创建了它的 exe 我想要的是 当我尝试运行应用程序时 如果它已经处于运行状态 则激活该应用程序实例 否则启动新应用程序 这意味着我不想多次打开同一个应用程序 使用以下代码将焦点设置到当前应用程序
  • 估计由一组点生成的图像面积(Alpha 形状??)

    I have a set of points in an example ASCII file showing a 2D image I would like to estimate the total area that these po
  • MySQL“IN”子句中的逗号分隔值

    我的一个表中有一个列 其中存储多个用逗号分隔的 id 有没有一种方法可以在查询的 IN 子句中使用此列的值 专栏 city 的值如下6 7 8 16 21 2 我需要用作 select from table where e ID in Se
  • 执行 argc=0 的进程

    是否可以执行 argc 0 的进程 我需要执行一个程序 但它的 argc 等于 0 非常重要 有没有办法做到这一点 我尝试在命令行中放入 2 32 个参数 这样看起来就好像 argc 0 但参数数量有最大限制 您可以编写一个程序来调用exe
  • 如何使用单个锚标记打开多个链接

    所以这是一个简单但有趣的问题 如何使用单个链接打开多个链接 a 元素 使用它只会打开第一个href a href http www yahoo com target blank Click Here a 你当然可以尝试这个 Demo a h
  • 如何避免这种非常繁重的查询会减慢应用程序的速度?

    我们有一个在生产环境中运行的 Web 应用程序 有时客户抱怨应用程序变得多么慢 当我们检查应用程序和数据库的情况时 我们发现这个 宝贵 的查询正在由多个用户同时执行 从而对数据库服务器造成极高的负载 SELECT NULL AS table
  • 从 SQL Server 批量获取记录的最佳方法是什么

    Scenario 我们正在从 SQL Server 获取行到 C Net 控制台应用程序 并通过存储过程对从 SQL Server 检索到的数据执行操作 执行操作后 新数据将使用 C MongoDB Driver 存储到 MongoDB 中
  • 如何在 C# 中打开 Windows 7 事务文件

    我了解 Windows 7 支持事务处理文件 我如何在 C 中使用它们 通过写作互操作包装器围绕非托管功能 我也曾在博客上写过一次关于它的文章 这是另一个例子
  • mac os php intactive模式没有提示

    我正在尝试从终端窗口以交互模式运行 PHP 当我运行命令时 php a 它显示 已启用交互模式 但没有显示应有的 php gt 提示 我必须按 control z 才能退出交互模式 但我可以在交互模式 启用 时执行任何命令 有谁知道如何解决
  • Request.Browser.Platform 未返回 iPad、OSX 或 Windows 7

    我正在研究一些高级浏览器检测 并且我已经下载了MDBF来自 CodePlex 的浏览器文件 不幸的是 我的 Request Browser Platform 以及其他一些东西在我的 iPad Mac OSX Snow Leopard 和 W
  • jquery某类元素索引

    我在容器内有某个类的多个元素 我想获取该特定元素的索引 假设我有这样的 HTML div div class MyClass My Class div div class SomeClass Not My Class div div cla
  • 如何读取iOS WidgetKit应用程序创建的文件?

    我正在开发一个带有 widgetKit 扩展的应用程序 我想在小部件上显示用户创建的数据 widgetKit 如何读取应用程序创建的文件 你应该使用应用程序组功能在您的目标之间共享数据 这里有一个好的tutorial作者 雷文德利希
  • 如何在node.js中使用导入和导出?

    我有两个文件 app js 模块 js app js 将有表达式 import foo from module use foo module js 将会有 export default expression 但它不起作用 我目前正在使用节点
  • Qt:Windows 7 任务栏扩展支持的当前状态如何?

    Windows 7 Aero 主题拥有全新任务栏带扩展 Qt 中任务栏扩展 跳转列表等 支持的当前状态如何 据我所知 目前尚不支持此操作 但没有什么可以阻止您仅在 Windows 上进行本机操作系统 API 调用来执行此操作 如果您想查看此
  • 根据另一个列表的排序方式对 Dart 中的列表进行排序

    我正在尝试参考另一个列表对列表进行排序 考虑这个例子 List
  • 在控制台中打印 JavaScript 变量的值

    我有一个存储一些值的 JavaScript 变量 我可以在 Firebug 或其他地方回显它以查看存储的值吗 var p user permissions 没关系 我必须添加这一行 var p user permissions Before
  • 使用 Ghostscript 处理(重新映射)PDF 中缺失/有问题的(CID/CJK)字体?

    简而言之 我正在处理一个有问题的 PDF 其中 无法在文档查看器中完全呈现 例如evince 因为缺少字体信息 然而 ghostscript可以完全渲染相同的PDF 因此 无论怎样ghostscript用于填空 也许是后备字形 或者是访问字
  • 格式化字符串时多次插入相同的值

    我有一个这种形式的字符串 s arbit string s hello world s hello world s s s s 字符串中的所有 s 具有相同的值 即 s 有更好的写法吗 而不是列出 s 三遍 您可以使用高级字符串格式化 在
  • 适用于桌面和移动应用程序的 OAuth 2.0

    我正在研究 OAuth 2 0 协议 我陷入了为不在 Web 服务器上运行的桌面 移动应用程序生成不记名令牌的问题 对于 Web 应用程序 我很清楚 OAuth 2 0 协议流程 认为myapp com想要访问protectedresour