Пользовательские атрибуты пользователя с devise_token_auth

Я создал новый API, используя rails / edge, и я использую devise с devise_token_auth, который сгенерировал мне пользовательскую модель.

Мой вопрос заключается в следующем: после миграции и добавления новых атрибутов в модель User, как я могу вернуть это в ответе JSON, который в настоящее время генерируется devise_token_auth?

1 ответ

Это то, что вам нужно, чтобы разрешить настраиваемые атрибуты для модели Devise (например, User модель)

class ApplicationController < ActionController::Base    
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    # for user account creation i.e sign up
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name])
    # for user account update
    # where bank_name and bank_account are nested attributes in the User model
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, bank_attributes: [:bank_name, :bank_account]])
  end
end

источник этого решения

Как уже упоминалось в комментарии выше. Пока что мое лучшее решение - создать отдельную модель UserDetails, сериализовать ее, а затем выполнить отдельный вызов после аутентификации для заполнения дополнительных пользовательских данных.

Который действительно кажется довольно хорошим, поскольку он поддерживает чистоту аутентификации.

Другие вопросы по тегам