gpt4 book ai didi

ruby-on-rails - Ruby On Rails - 覆盖 devise_token_auth 中的呈现方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:09 28 4
gpt4 key购买 nike

我目前正在使用 devise_token_auth为我的 Rails API 实现基于安全 token 的身份验证。这个 gem 生成一个带有一些属性的用户模型。在我的用户模型中添加一些自定义属性后,devise_token_auth 提供的用户管理(登录、注销...)路由继续呈现相同的旧属性。

我已经尝试添加一个 UserSerializer,但它没有解决问题。

有谁知道如何使用 devise_token_auth 为用户模型呈现自定义数据?

--- 编辑 ---

我正在阅读 gem 文档并发现可以 override rendering methods ,但我真的不知道该怎么做。

最佳答案

文档的意思是,可以使用您自己的 Controller 来替换基本的注册/ session /密码/ token 验证 Controller 。

举例来说,假设您想覆盖 DeviseTokenAuth 提供的 RegistrationsController。

首先,您需要创建自己的 Controller ,继承自基本 Controller :

# app/controllers/custom/registration_controller.rb
class Custom::RegistrationsController < DeviseTokenAuth::RegistrationsController

def render_create_success
# here, the @resource is accessible, in your case, a User instance.
render json: {status: 'success', data: @resource.as_json}
end

end

然后你需要告诉路由路由到你的新 Controller :

# config/routes.rb
mount_devise_token_auth_for 'User', at: 'auth', controllers: {
registrations: 'custom/registrations'
}

关于ruby-on-rails - Ruby On Rails - 覆盖 devise_token_auth 中的呈现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36386283/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com