我使用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中,以便在创建用户时它还创建了一个令牌,并在会话/身份验证上检查了令牌。
非常感谢任何帮助或建议。
如果我可以提供任何其他信息以帮助您理解我的问题,请告知我们。
非常感谢
利
答案 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。我认为他们做得更好。