私はユーザー認証のためのdevise gemを使用して、レールアプリを持っています。私はuser_withinパラメータを設定しても、Deviseユーザーはサインインしません
確認メールを送信してユーザーに送信しました。走っている。私は確認メールを受け取りました。アカウントにログインする前にアカウントを確認する必要があります。
アカウントを確認する前に、私たちのアプリをしばらく試してみましょう。だから、私は、機器の初期設定でconfirm_withinをセットアップしました。それは失敗です。ユーザーが登録フォームに記入すると、登録後にログインページにリダイレクトされます。ログを確認したところ、ユーザーがサインインしていないようです。認証に失敗しました。フィルタの前に
これは私の設定です。
モデル:user.rb
devise :database_authenticatable, :registerable, :encryptable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
route.rb
devise_for :users, :controllers => {:password => "passwords"}
イニシャライザ:devise.rb
config.confirm_within = 2.days
application_controller.rb
def after_sign_in_path_for(resource)
stored_location_for(resource) || jobs_path
end
01私は私が何かを逃したのかわからない
jobs_controller.rb
class JobsController < ApplicationController
before_filter :authenticate_user!
***some functions
end
。誰かがこの問題を解決する方法を親切に教えてくれますか?ありがとう。
あなたは実際にユーザーにサインインしましたか?ユーザがサインインするためには 'sign_in @ user'を呼び出す必要があります。通常、あなたはサインインフォームを送信するときにユーザのクレデンシャルを認証した後にこれを行います。 – Batkins
@Batkinsに感謝します。登録と確認プロセスはDeviseによって制御されます。私は公式の宝石を使用し、内部のものは変更しなかった。私はソースコードをチェックして、登録#でユーザーがサインインしているようだと思う。 –