我正在研究 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(使用前将#替换为@)