Я использую авторизацию токена devise в интерфейсе React, и теперь я делаю подтверждение пользователя по электронной почте. Электронная почта отправляется, но каким-то образом она генерирует неправильный URL.
Генерируемый URL:
http://localhost:3001/auth/confirmation.4?confirmation_token=AoWH2yYxuHHnBzJRF746
Мои маршруты.
new_user_confirmation GET /auth/confirmation/new(.:format) users/confirmations#new
user_confirmation GET /auth/confirmation(.:format) users/confirmations#show
POST /auth/confirmation(.:format) users/confirmations#create
Мое приложение / views / devise / mailer / translation_instructions. html .erb
<p>Welcome <%= @email %>!</p>
<p>You can confirm your account email through the link below:</p>
<p><%= link_to 'Confirm my account', user_confirmation_url(confirmation_token: @token) %></p>
После нажатия на кнопку подтверждения моей учетной записи она успешно переходит в мое приложение, но с неверным URL-адресом. Я буду рад, если мне удастся выполнить одно из следующих действий.
- Пользователь автоматически входит в систему после подтверждения.
- Он переходит на страницу входа после подтверждения учетной записи и после этого выдает вам учетные данные и войдите в систему.
Для 1 я перезаписал файлфирмо Подтверждения_контроллера.
# frozen_string_literal: true
class Users::ConfirmationsController < Devise::ConfirmationsController
# The path used after confirmation.
def after_confirmation_path_for(resource_name, resource)
sign_in(resource) # In case you want to sign in the user
root_path
end
end
В маршрутах. rb
mount_devise_token_auth_for 'User', at: 'auth', controllers: { confirmations: 'users/confirmations' }