2016-03-21 3 views
0

devise_forがあると、ユーザーはDeviseによって認証されたすべてのユーザーコントローラーを認証します。 authメソッドを使用してパブリックAPIを作成するなど、いくつかのメソッドをスキップします。users#api, users#do_stuffルートに基づいてスキップ認証を行います。

どうすればいいですか?

更新。私はあなただけで認証することを前提としていusers_controller.rb内部

skip_before_filter :authenticate_user!, :only => [:api,:do_stuff] 
+0

「before_filter:authenticate_user !, except:[:apiv1、:do_stuff]」を試してください。 –

+0

理由:...のみ:[:api'v1'、:do_stuff]、そうでない...のみ:[':api'、:do_stuff] – siegy22

+0

コントローラを投稿してください。 –

答えて

0

を与えますこの2つのメソッドはusers_controllerを呼び出し、認証フィルタは追加しませんapplication_controllerの中で。

+0

まだ私に" "続行する前にサインインまたはサインアップする必要があります。"} – kaboom

0

...

before_action :authenticate_user!, :only => [:api, :do_stuff] 

以下の行を追加します -

skip_before_filter :authenticate_user!, only: [:api, :do_stuff] 

はまだこれを試してみてください私に{"error":"You need to sign in or sign up before continuing."}

+0

アップデート – kaboom

+0

を参照してください。ブロックを除き、必要なメソッドだけを認証し、skip_before_filter:authenticate_userを追加してください!アプリケーション・コントローラーに、expectブロックで使用されているもの以外のすべての認証をスキップします。 – Milind

+0

私はそれをやる理由は何ですか? – kaboom

関連する問題