API设计JSON身份验证/注册/会话

时间:2015-01-27 11:12:04

标签: ruby-on-rails json authentication devise token

我使用rails-api gem创建了一个Rails 4应用程序。我的应用程序控制器继承自ActionController :: API。

我的路线档案:

namespace :api do
    namespace :v1 do
       devise_for :users
       resources :friends
    end
end

我有一个用户模型,我已经运行了迁移以添加设计属性。用户模型还具有不特定于设计的属性,例如first_name和last_name。

然后我有一个token_authentication模型,用于存储用户令牌。

我想在我的应用中使用当前版本的Deivse进行用户的注册/会话/身份验证。

我的问题如何使用Devise注册控制器/会话控制器接受JSON格式,创建用户/会话并发送JSON响应。我希望对API的每个请求强制执行用户身份验证,但用户创建操作除外。我需要能够将我的令牌代码添加到Devise中,以便在创建用户时它还创建了一个令牌,并在会话/身份验证上检查了令牌。

非常感谢任何帮助或建议。

如果我可以提供任何其他信息以帮助您理解我的问题,请告知我们。

非常感谢

1 个答案:

答案 0 :(得分:1)

我曾经这样做过。

首先,您需要覆盖设计控制器。

# Override the devise session and registration controller to do like this.
resource.generate_auth_token!

然后编写自己的身份验证方法。

# Authenticate user.
def current_user
  @current_user ||= User.where(private_token: token).first 
end
def authenticate!
    render json:{error:'401 Unauthorized!'},status: 401 unless current_user
end

但后来我找到了devise_token_auth。我认为他们做得更好。