OAuth总是假设用户界面吗?

时间:2013-09-08 10:41:15

标签: oauth oauth-2.0 linkedin

我想连接到LinkedIn并通过他们的API提取一些信息。 LinkedIn API使用OAuth 2.0。

我读过的关于OAuth的所有文档(在LinkedIn和一般情况下都是如此),似乎都假设有一个用户界面以弹出窗口的形式授予访问权限。

但是,在我的情况下,我只想通过一个没有用户界面的命令行应用程序导出数据。我真正想要的是一种简单的方法来认证,而不是授权。连接凭据将位于配置文件中。

OAuth是我想要/需要的,还是我真的在寻找别的东西?

1 个答案:

答案 0 :(得分:3)

  

OAuth是我想要/需要的,还是我真的在寻找别的东西?

这取决于您与之互动的API。看起来LinkedIn只适用于OAuth2(和1,但被弃用)。所以你别无选择。

OAuth的设计考虑了授权。谁拥有您想要从LinkedIn中提取的信息? UI流程的目的是让数据所有者同意将其提供给第三方(您的应用程序)。通常使用特定的scope(例如访问个人资料,网络,联系人等)。信息的所有者验证并授权向第三方(您的应用)披露信息。您的应用程序也对LinkedIn进行身份验证(作为已注册的应用程序),然后您调用API。

refresh_tokens是一种请求新令牌的工具,而不是每次都要求用户同意。这些是可以存储的相对长期存在的实体(并且可以在任何时候被用户撤销)。

如果 您的 数据(您既是所有者又是第三方应用),您可以使用初始身份验证/授权来引导您的命令行进程,然后您会使它与access_token/refresh_token一起运行,直到刷新令牌过期。

某些系统(不太可能是LinkedIn)支持所谓的Resource Owner flow。您可以通过凭据(用户/密码)获取access_token。但没有人可能会放弃他们的凭据到您的应用程序。 (例外情况是你和我上面写的一样)。