为webapp和api使用devise_token_auth库

时间:2016-03-31 02:57:52

标签: ruby-on-rails devise token

我正在使用devise_token_auth(https://github.com/lynndylanhurley/devise_token_auth)来验证移动设备,我还需要为我的网络应用程序使用设计。

问题是用户可以通过devise_token_auth注册,但如果用户登录并尝试在包含“before_action :authenticate_user!”的控制器中调用某些功能,则会收到错误Authorized Users Only

我想知道是否有办法同时使用devisedevise_token_auth

代码:

class RestrictedController < ApplicationController
  before_action :authenticate_user!

  def stuff
    head :ok
  end
end

1 个答案:

答案 0 :(得分:0)

首先,您应该知道devise不再管理用户的会话。这就是为什么建议使用devise_token_auth

每当您在Controller上指定before_action :authenticate_user!时,所有操作(例如RestrictedController#stuff)都需要用户登录。devise_token_auth期望在下面列出的查询标题中收到4个参数

以下是您需要做的事情:

  1. 使用devise_token_auth提供的路线登录。
  2. 如果登录成功,您会在标题中收到access-tokenclienttoken-typeuid
  3. 每当您想要运行必须登录用户的控制器操作时,请在查询标题中指定access-tokenclienttoken-typeuid