如何为Devise Token Auth自定义User模型的额外POST端点路由?
为Devise Token Auth添加自定义用户路由
保留默认的Devise Token Auth路由的同时,你可以直接在config/routes.rb中添加自定义POST路由,指向custom_users/users_controller.rb中的三个动作:
路由配置示例
# 保留默认的Devise Token Auth端点 mount_devise_token_auth_for 'User', at: 'auth' # 添加自定义POST路由,路径可根据业务需求调整 post 'auth/signup_email', to: 'custom_users/users#signup_email' post 'auth/verify_mobile_signin', to: 'custom_users/users#verify_mobile_signin' post 'auth/register_sports_complex', to: 'custom_users/users#register_sports_complex'
如果希望用命名空间规整路由结构,也可以这样写:
mount_devise_token_auth_for 'User', at: 'auth' namespace :auth do post 'signup_email', to: 'custom_users/users#signup_email' post 'verify_mobile_signin', to: 'custom_users/users#verify_mobile_signin' post 'register_sports_complex', to: 'custom_users/users#register_sports_complex' end
控制器注意事项
确保你的CustomUsers::UsersController正确继承并引入必要的Devise Token Auth模块,如果自定义动作需要验证用户token,需添加SetUserByToken concern:
class CustomUsers::UsersController < DeviseTokenAuth::ApplicationController # 若动作需要用户认证,引入该模块处理token校验 include DeviseTokenAuth::Concerns::SetUserByToken def signup_email # 你的业务逻辑实现 end def verify_mobile_signin # 你的业务逻辑实现 end def register_sports_complex # 你的业务逻辑实现 end end
验证路由正确性
执行rails routes命令,检查输出结果中是否存在你定义的路由,确认请求方法、路径与控制器动作的对应关系是否正确。
内容的提问来源于stack exchange,提问作者Aftab Iqbal
相关产品推荐
相关产品推荐

