是否可以使用OAuth进行身份验证,而不会在我们拥有用户凭据时提示用户?

时间:2009-09-09 15:54:00

标签: oauth

案例:
桌面客户端与服务器A交互。
因此,服务器A需要连接到服务器B. 客户端传递了oauth请求 现在,在客户端中,我们已经拥有服务器B的用户凭据。有没有办法在不提示用户或显示任何UI的情况下对服务器B进行身份验证?我们需要以通用方式执行此操作,因为我们不知道服务器B是什么。

我目前的理解是,事实并非如此。即使我们自己以某种方式处理了登录表单,仍然会有用户必须点击的OAuth确认。

我只想确认我目前的理解是准确的。如果您有任何见解,请告诉我。

2 个答案:

答案 0 :(得分:2)

简单的回答是

由于服务器B需要与服务器A进行交互,因此服务器A需要在服务器B上注册(如LinkedIn,Twitter等的应用注册)。 主要取决于服务器B,但IMO服务器B不允许直接访问。

但是,在服务器B有2个访问点的情况可能会有所不同,您可以使用服务器C或服务器A的详细信息。

A =>C (Access)  
A !=>B (no access)  
C =>B (access)  

在这里,您可以使用服务器C详细信息从B获取数据,然后使用A详细信息从C获取。

答案 1 :(得分:1)

客户端已通过HTTP重定向发送到服务器B上的授权页面。由于您对服务器B一无所知,因此您不知道授权(和/或身份验证)涉及的内容;它超出了OAuth的范围。您不知道您拥有服务器B的用户凭据,因为您不知道它们是什么。

通常,客户端是用户选择的浏览器,服务器B可以选择接受存储在客户端上的身份验证和/或授权凭证(通常使用cookie),而无需用户交互。但是,这也是你无法控制的;您无法阻止服务器B要求用户交互。如果您只需要身份验证,OpenID更有可能允许这样做,因为通常没有任何ID选择,但仍然不确定。

您可以存储访问令牌,以便以后续订和使用,而无需重新授权。这也取决于服务器B,您不能依赖于此用于通用服务器。