2012-01-12 90 views
0

我需要用户通过表单进行身份验证,但我还需要将此身份验证公开为其他应用程序/设备使用的API。设计Rails身份验证API

显然我想保持简单并避免重复,所以我应该如何处理这个问题?我是否应该为用户登录和api登录使用单个URI?如果是这样,我应该如何处理不同的要求 - 通过flash/redirect向用户通知成功或失败,并返回一个JSON对象给API客户端?

回答

2

使用用户的API形式基于登录(如Devise

OAuth基于登录(轨道oauth2_provider

你不能避免重复,这里,不,如果你想要做的事正确。主要是因为你的API是无状态的,而你的用户是有状态的(cookies!)。

+0

但是如果我使用基于令牌的身份验证呢?这是否意味着统一用户登录和API身份验证的方法? – Undistraction 2012-01-13 16:50:34

+0

oAuth只比access_token多一点,你必须签署每一个请求。该规范说,你可以获得一个access_token发送你的密码,但不建议。 http://tools.ietf.org/html/draft-ietf-oauth-v2-22#page-14 Rails充满了所有这些事情的宝石,关于重复,你不会有太多事情要做。 – greut 2012-01-13 17:56:00