Подтвердить что ты не робот

Всегда получать 401 Несанкционированный с новой установкой Rails + Devise

У меня новая установка Rails и я пытаюсь настроить аутентификацию с помощью Devise. Насколько я могу судить, у меня есть очень базовая настройка, которая должна работать, но всякий раз, когда я пытаюсь войти в систему по умолчанию в форме формы, я получаю несанкционированную ошибку. Я уверен, что мои учетные данные верны, поскольку я создал пользователя для тестирования с помощью консоли:

User.new({:email=>'[email protected]', :priv_level => 'admin', :password=>'mypassword', :password_confirmation=>'mypassword'}).save

Моя модель пользователя:

class User < ActiveRecord::Base

  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable, :confirmable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :priv_level, :unconfirmed_email
  # attr_accessible :title, :body

  has_one :supplier

end

Мой журнал:

Started POST "/admin/user/sign_in" for 127.0.0.1 at 2012-12-22 13:10:56 -0500
Processing by Admin::SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"wYLsalxN9rTv8P8bvYuT0wZcvlFbu6b1SvoCyKtTCII=", "admin_user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1
(0.1ms)  begin transaction
(0.0ms)  commit transaction
Completed 401 Unauthorized in 69ms

Есть ли способ получить дополнительную информацию о том, что происходит с Devise? Когда я создаю пользователя в консоли, используется ли шифрование, отличное от формы?

4b9b3361

Ответ 1

Ну, это небольшое упражнение в расстройстве оказалось хорошим уроком в RTFM. Я настроил Devise с подтверждением, и когда я создал свои макеты, я забыл вставить следующие строки:

<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>

... как ясно сказано в руководстве по началу работы. Когда я вставил их, я получил сообщение об ошибке "Перед входом в систему нужно подтвердить свой адрес электронной почты".

В консоли я установил confirm_at = Time.now для Пользователя и voilà, теперь я могу войти в систему.

Ответ 2

В моей ситуации он вызывает это

before (сбой 401)

resources :users devise_for :users

после (успех)

devise_for :users resources :users

поэтому попробуйте сделать правильный порядок в маршрутах. rb