如何在门卫中执行仅应用程序身份验证(oauth2)

时间:2014-08-08 12:11:11

标签: ruby-on-rails ruby-on-rails-4 oauth oauth-2.0 doorkeeper

Twitter为其api提供仅限应用程序的身份验证:https://dev.twitter.com/docs/auth/application-only-auth

  

Twitter使应用程序能够代表应用程序本身(而不是代表特定用户)发出经过身份验证的请求。

我想在Rails中对门卫做同样的事,但我不知道该怎么做。似乎只能通过回调网址对用户进行身份验证,但如何使用应用程序上下文访问我的API(仅使用应用程序ID和应用程序密钥)

我的第一个想法是使用应用程序的ID和密码进行密码凭据登录,以获取属于该应用程序的访问令牌。这是一个坏主意吗?从安全的角度来看是否安全?我想知道因为应用程序的秘密在数据库中保存为纯文本,这是用户身份验证的禁止。

1 个答案:

答案 0 :(得分:5)

这是你绝对可以做的事情:您可以在示例here上看到它使用client_credentials生成令牌,但没有用户名/密码:

curl -i http://localhost:5100/oauth/token \
-F grant_type="client_credentials" \
-F client_id="your_application_id" \
-F client_secret="your_secret"

在您之后检查您是否resource_ownerdoorkeeper_token相关联。