2016-03-31 6 views
1

私はモバイルデバイスを認証するためにdevise_token_auth(https://github.com/lynndylanhurley/devise_token_auth)を使用しています。また、私のWebアプリケーションにもdeviseを使用する必要があります。webappとapiの両方で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 

答えて

0

まず、あなたはdeviseは、もはやユーザーのセッションを管理していることを知っているべきではありません。このため、devise_token_authを使用することをお勧めします。

コントローラーにbefore_action :authenticate_user!を指定すると、すべてのアクション(RestrictedController#stuffなど)にはユーザーがサインインする必要があります。devise_token_auth以下にリストされた4つのパラメーターを照会ヘッダーで受け取ることを想定しています。

  1. サインdevise_token_authが提供するルートを使用して:ここ

    は、あなたが何をする必要があるかです。

  2. ログインが成功した場合は、access-tokenclienttoken-typeuidとなります。
  3. あなたは、クエリのヘッダに、access-tokenclienttoken-typeuid
、ユーザーはログインする必要があり、コントローラのアクションを実行する指定したいときはいつでも
関連する問題