Это спецификации версии, используемые в моем приложении,
рельсы 5.2.3
рубин 2.6.2
devise_token_auth 1.1.0
Во время регистрации пользователя с этой конечной точкой,
http://localhost:3000/api/v1/auth/
Я получил URL подтверждения следующим образом:
http://localhost:3000/api/v1/auth/confirmation?config=default&confirmation_token=GHz9m52xVeQJJLFLJnWw&redirect_url=%2F
При нажатии на указанный выше URL-адрес подтверждения я мог видеть, что метод "ConfirmationsController # show" может вызываться дважды. При первом вызове он говорит, что подтверждение получено успешно, а при втором вызове он выдает ошибку как «[{: error => :ready_confirmed}]}>», тогда это приводит к ошибке маршрутизации,
Started GET "/api/v1/auth/confirmation?config=default&confirmation_token=GHz9m52xVeQJJLFLJnWw&redirect_url=%2F" for ::1 at 2019-05-04 14:45:46 +0530
Processing by DeviseTokenAuth::ConfirmationsController#show as HTML
Parameters: {"config"=>"default", "confirmation_token"=>"GHz9m52xVeQJJLFLJnWw", "redirect_url"=>"/"}
User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."confirmation_token" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["confirmation_token", "GHz9m52xVeQJJLFLJnWw"], ["LIMIT", 1]]
↳ /home/user/.rvm/gems/ruby-2.6.2@church/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
(0.3ms) BEGIN
↳ /home/user/.rvm/gems/ruby-2.6.2@church/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
User Update (0.7ms) UPDATE "users" SET "confirmed_at" = $1, "updated_at" = $2 WHERE "users"."id" = $3 [["confirmed_at", "2019-05-04 09:15:46.325684"], ["updated_at", "2019-05-04 09:15:46.326717"], ["id", 26]]
↳ /home/user/.rvm/gems/ruby-2.6.2@church/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
(1.4ms) COMMIT
↳ /home/user/.rvm/gems/ruby-2.6.2@church/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
Redirected to http://localhost:3000:///?account_confirmation_success=true
Completed 302 Found in 21ms (ActiveRecord: 3.1ms)
Started GET "/api/v1/auth/confirmation?config=default&confirmation_token=GHz9m52xVeQJJLFLJnWw&redirect_url=%2F" for ::1 at 2019-05-04 14:45:46 +0530
Processing by DeviseTokenAuth::ConfirmationsController#show as HTML
Parameters: {"config"=>"default", "confirmation_token"=>"GHz9m52xVeQJJLFLJnWw", "redirect_url"=>"/"}
User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."confirmation_token" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["confirmation_token", "GHz9m52xVeQJJLFLJnWw"], ["LIMIT", 1]]
↳ /home/user/.rvm/gems/ruby-2.6.2@church/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
Completed 404 Not Found in 6ms (ActiveRecord: 0.7ms)
ActionController::RoutingError (Not Found):
devise_token_auth (1.1.0) app/controllers/devise_token_auth/confirmations_controller.rb:30:in `show'
actionpack (5.2.3) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
Когда войдите с этим URL,
http://localhost:3000/api/v1/auth/sign_in
Я получил ответ как,
{
«успех»: ложь,
"ошибки": [
«В вашу учетную запись было отправлено письмо с подтверждением по адресу« 123@gmail.com ». Чтобы активировать свою учетную запись, вы должны следовать инструкциям, указанным в электронном письме».
]
}
Вопросы,
1. Почему «ConfirmationsController # show» вызывается дважды при нажатии URL-адреса подтверждения?
2. Почему пользователь не может войти в систему, даже если подтверждение получено?
Что я здесь пропустил?