Devise Token Auth 确认电子邮件 link 已过期
Devise Token Auth confirmation email link expired
我目前正在开发一个网站,但我在使用设计令牌身份验证 link 时遇到问题。
一切正常,有人注册后他们会收到一封确认电子邮件 link。此 link 正在确认并正常工作,但是当此 link 过期时(我在配置中使用 config.confirm_within = 1.day 设置它)或有人点击此 link他们再次得到 "Routing error"。所以我想应该有一种方法可以在 link 过期时重定向到主页,并且可能会显示一条消息,说他们必须再次要求电子邮件确认..
我有这条确认路线:
new_api_user_confirmation GET /api/auth/confirmation/new(.:format) devise_token_auth/confirmations#new
api_user_confirmation GET /api/auth/confirmation(.:format) devise_token_auth/confirmations#show
POST /api/auth/confirmation(.:format) devise_token_auth/confirmations#create
我使用最后一条路线 POST 重新发送电子邮件并且它正在工作,但其他路线不起作用,这是有道理的,因为我正在使用 API。但是当你收到错误时应该有一个重定向 url
有什么想法吗?提前谢谢你
您可以覆盖 DeviseTokenAuth::ConfirmationsController#show
并重定向到 root_path
DeviseTokenAuth ConfirmationsController#show
class ConfirmationsController < DeviseTokenAuth::ConfirmationsController
def show
...
else
# raise ActionController::RoutingError, 'Not Found'
redirect_to :root_path
end
...
在路线中
mount_devise_token_auth_for 'User', at: 'auth', controllers: {
# confirmations: 'devise_token_auth/confirmations',
confirmations: 'confirmations',
我目前正在开发一个网站,但我在使用设计令牌身份验证 link 时遇到问题。
一切正常,有人注册后他们会收到一封确认电子邮件 link。此 link 正在确认并正常工作,但是当此 link 过期时(我在配置中使用 config.confirm_within = 1.day 设置它)或有人点击此 link他们再次得到 "Routing error"。所以我想应该有一种方法可以在 link 过期时重定向到主页,并且可能会显示一条消息,说他们必须再次要求电子邮件确认..
我有这条确认路线:
new_api_user_confirmation GET /api/auth/confirmation/new(.:format) devise_token_auth/confirmations#new
api_user_confirmation GET /api/auth/confirmation(.:format) devise_token_auth/confirmations#show
POST /api/auth/confirmation(.:format) devise_token_auth/confirmations#create
我使用最后一条路线 POST 重新发送电子邮件并且它正在工作,但其他路线不起作用,这是有道理的,因为我正在使用 API。但是当你收到错误时应该有一个重定向 url
有什么想法吗?提前谢谢你
您可以覆盖 DeviseTokenAuth::ConfirmationsController#show
并重定向到 root_path
DeviseTokenAuth ConfirmationsController#show
class ConfirmationsController < DeviseTokenAuth::ConfirmationsController
def show
...
else
# raise ActionController::RoutingError, 'Not Found'
redirect_to :root_path
end
...
在路线中
mount_devise_token_auth_for 'User', at: 'auth', controllers: {
# confirmations: 'devise_token_auth/confirmations',
confirmations: 'confirmations',