我是OAuth的新手,并且难以将工作过程背后的过程可视化。OAuth和握手混淆
据我所知,当我尝试通过OAuth验证凭据时,我向登录服务器发送了一个请求,该请求接管并让用户在网站上登录。如果凭据有效,则会访问OAuth请求的回调URL,并将令牌附加到回调URL。该令牌必须与所有未来的HTTP请求一起传递给服务器,并用作用户证书的验证。
我困惑的地方是,如何使这个过程适应没有服务器的桌面应用程序?我如何使用回调URL,以及如何在桌面上运行.NET应用程序时如何检索令牌?
谢谢!
我是OAuth的新手,并且难以将工作过程背后的过程可视化。OAuth和握手混淆
据我所知,当我尝试通过OAuth验证凭据时,我向登录服务器发送了一个请求,该请求接管并让用户在网站上登录。如果凭据有效,则会访问OAuth请求的回调URL,并将令牌附加到回调URL。该令牌必须与所有未来的HTTP请求一起传递给服务器,并用作用户证书的验证。
我困惑的地方是,如何使这个过程适应没有服务器的桌面应用程序?我如何使用回调URL,以及如何在桌面上运行.NET应用程序时如何检索令牌?
谢谢!
这取决于您想要支持的服务提供商。
谷歌对如何使用OAuth 2.0“安装的应用程序”这里一个很好的说明: https://developers.google.com/accounts/docs/OAuth2InstalledApp
在一般情况下,有几个不同的策略:
如果您的OAuth 2.0提供程序不支持OOB,也可以重定向到您自己的Web服务器来完成类似的任务。
最大的问题是你是否正在进行身份验证(获取用户身份)或授权(通过Web API访问用户数据)。如果您尝试对用户进行身份验证,则需要一些您可信任的服务器端逻辑来传递授权码或访问令牌进行验证。
感谢您的回应!我现在面临的最大问题是,我的OAuth提供程序似乎不支持OOB。我没有尝试进行身份验证,我只是试图授权我的应用程序,以便它可以通过服务的Web API访问用户数据。这与在浏览器中登录用户并在浏览器窗口中搜索数据功能相同,只是从后端而不是前端。如果我的提供程序不支持OOB,它看起来像嵌入式浏览器窗口是我唯一的选择。 ( 编辑:无论如何,我必须进行身份验证,但这不是我的应用程序的要点 – sichinumi
只要你有一个Web服务器,你的应用程序可以使用授权,你仍然可以使用其他技术之一,你只需要自己建立一个页面,上面写着“复制并粘贴下面的内容”,或者把它放到HTML