我是 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 访问用户数据)。如果您尝试对用户进行身份验证,则需要一些您可以信任的服务器端逻辑来传递授权代码或访问令牌以进行验证。