2010-09-19 68 views
24

我想知道没有任何域名的桌面应用如何使用oauth?还是不应该这样使用?如果是的话,我使用什么?说tumblr他们有一个authentication api所以我将不得不把用户名和密码在URL /查询字符串?桌面应用的OAuth?

我想使用WPF/Adob​​e AIR。 tweetdeck如何工作?

+1

桌面应用程序不需要知道OAuth等。它只需要它们的标记(它们在Cookie中,它们在登录后发送回客户端)。您只需浏览登录页面 - 等待他们登录 - 登录后(或者浏览器自动将其转发),您将制作服务发回的Cookie副本。 - 然后为了将来的请求,您只需将这些cookie推回。 – BrainSlugs83 2014-03-31 06:53:05

回答

2

看起来这是可能的,看到关于这个问题的谷歌文档:

https://developers.google.com/accounts/docs/OAuth2

+3

也许更新新版本的OAuth的答案? https://developers.google.com/accounts/docs/OAuth2InstalledApp – 11684 2013-02-26 16:32:25

+0

没有一个是特别好的解决方案,它们是... – fatuhoku 2013-10-17 13:11:13

1

您应该先阅读OAuth开始阅读。最终,即使是桌面应用程序也会打开一个浏览器窗口来验证用户身份 - TweetDeck和其他Twitter客户端会这样做,正如您可能已经注意到的那样。

在您的示例中,Tumblr不使用OAuth,而是通过简单的HTTP Web请求执行的基本身份验证。

+0

,但如果桌面打开浏览器窗口进行身份验证,则不会真正在使用oauth权限创建应用程序所需的域上。我将阅读链接tho – 2010-09-19 03:36:45

+0

它实际上是一个可以确认OAuth令牌的域。为了给您举一个真实世界的OAuth供电服务(Twitter除外)的示例,请查看Vimeo:http://vimeo.com/api/docs/oauth – 2010-09-19 03:52:54

+0

嗯,我注意到,但我的域如何来发挥?例如。我的应用程序会调用我的域来验证请求或什么?对不起,我有点困惑 – 2010-09-25 05:43:37

1

Twitter不希望用户将他们的凭据输入到您的应用程序中。因此,在某些时候,桌面应用程序需要打开浏览器窗口,Twitter可以通过该窗口对其用户进行身份验证并返回代表用户的访问令牌。从这一点开始,桌面应用程序可以使用访问令牌来代表用户在所有后续的对Twitter的API调用中。

+0

好吧我明白打开浏览器的意义,但如果是从没有域名的桌面应用程序拨打电话,那么在注册时我该如何输入域名?即使我有域名,桌面应用程序和域名之间的关系是什么?就像应用程序要求对该域名或其他东西? – 2010-09-22 00:09:08

+0

您的应用程序将向Twitter发出呼叫 - 这是Twitter的身份验证机制,它将接受用户的凭据并返回令牌。根据Twitter的实施情况,您*可能*需要提供一个回叫URL,Twitter可以使用该回调URL在用户完成身份验证流程后将控制权返回给您的应用程序。这有帮助吗? – Addys 2010-10-03 14:28:29

+1

对于桌面应用程序,此回调URL是什么? – 2015-06-12 18:54:04

7

我一直对缺乏域或应用url的问题感到困惑,但事实证明,重定向并不是完成OAuth身份验证过程的唯一可能方式。

即,当web应用程序请求访问时,它提供了回调url:一个用户将被重定向到进程完成时。这就是webapp如何知道一切都完成了。

但是你不能重定向到用户机器上的应用程序。因此,还有另外一种方法:成功验证服务器向用户提供特殊代码。然后用户复制此代码并将其提供给应用程序。

您可以看到specification draft中描述的两种方法。
此外,此认证流程的here's an example与twitter。

+1

对于实际答案+1而不是简单地粘贴链接。 [另一个例子,与Imgur](https://api.imgur.com/oauth2#response_type) – 2016-05-19 23:11:41

0

在您有另一种方式来获得令牌,浏览器中打开URL本身就是一个桌面环境。

OAuth2服务器会将用户浏览器重定向到以令牌作为查询参数的重定向URL,因此如果您控制使用的浏览器,则可以直接从用户重定向到的URL读取令牌。

像GKT +这样的图形库已经集成了一些选项来创建用户可以用来验证的迷你浏览器,并且它会自动将令牌返回给应用程序,但其他选项也是可能的,例如阅读Firefox url。