diff --git a/README.md b/README.md index 3b366d9..1bb43f0 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ Devise.setup do |config| # Sign up api.sign_up.enabled = true + api.sign_up.extra_fields = [] # Authorization api.authorization.key = 'Authorization' diff --git a/app/controllers/devise/api/tokens_controller.rb b/app/controllers/devise/api/tokens_controller.rb index 9625d47..74f84c6 100644 --- a/app/controllers/devise/api/tokens_controller.rb +++ b/app/controllers/devise/api/tokens_controller.rb @@ -149,7 +149,7 @@ def refresh private def sign_up_params - params.permit(*resource_class.authentication_keys, + params.permit(*Devise.api.config.sign_up.extra_fields, *resource_class.authentication_keys, *::Devise::ParameterSanitizer::DEFAULT_PERMITTED_ATTRIBUTES[:sign_up]).to_h end diff --git a/lib/devise/api/configuration.rb b/lib/devise/api/configuration.rb index 01360b0..424d2ea 100644 --- a/lib/devise/api/configuration.rb +++ b/lib/devise/api/configuration.rb @@ -22,6 +22,7 @@ class Configuration setting :sign_up, reader: true do setting :enabled, default: true, reader: true + setting :extra_fields, default: [], reader: true end setting :authorization, reader: true do diff --git a/spec/devise/api/configuration_spec.rb b/spec/devise/api/configuration_spec.rb index 8e0a18a..7decff4 100644 --- a/spec/devise/api/configuration_spec.rb +++ b/spec/devise/api/configuration_spec.rb @@ -52,6 +52,10 @@ it 'enabled is true' do expect(config.sign_up.enabled).to eq true end + + it 'extra_fields is an empty array' do + expect(config.sign_up.extra_fields).to eq [] + end end context 'authorization' do