Я использую Rails-api для создания тестового приложения для проверки подлинности, которое использует Devise_token_auth gem. User.rb модель выглядитПараметр Unpermitted с использованием маркера Devem Auth в Rails API
class User < ActiveRecord::Base
before_save :set_auth_token
# Include default devise modules.
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :omniauthable
include DeviseTokenAuth::Concerns::User
private
def set_auth_token
if self.authentication_token.blank?
self.authentication_token = generate_authentication_token
end
end
def generate_authentication_token
loop do
token = Devise.friendly_token
break token unless User.where(authentication_token: token).first
end
end
end
routes.rb содержит
mount_devise_token_auth_for 'User', at: 'auth'
Также я использую по умолчанию SessionsController и RegistrationsController определенный DeviseTokenAuth драгоценный камень
Мой во внешнем интерфейсе сделанный в Ember-cli, где я сделал регистрационную форму, которая использует Ember-simple-auth-devise, Devise authorizer, чтобы вызвать/sign_in ur л рельсов апи. Тлеющей простой аутентификации упаковывает параметры, такие как
{"user"=>{"password"=>"[FILTERED]", "email"=>"[email protected]"}}
в то время как направляющие DeviseTokenAuth ожидает, что параметры запроса, такие как
{"password"=>"[FILTERED]", "email"=>"[email protected]"}
Ошибка произведенная
Processing by DeviseTokenAuth::RegistrationsController#create as JSON
Parameters: {"user"=>{"password"=>"[FILTERED]", "email"=>"[email protected]"}}
Unpermitted parameter: user
Проблема может быть решена, если либо Rails DeviseTokenAuth gem принимает параметры, завернутые в «пользователь» ИЛИ Ember-simple-auth отправляет параметры, развернутые, но, к сожалению, документация для них обоих явно не упоминает о том, как реализовать то же самое. Я попытался изменить ResourceName для Ember-простой-AUTH обнулить, но он не работает
ENV['simple-auth-devise'] = {
resourceName: null,
serverTokenEndpoint: 'http://localhost:3000/auth/sign_in'
};
Есть ли способ отправки распакованных параметров в Эмбер-простой аутентификации, изобрести? Или можно разрешить параметры, содержащиеся в «пользователе» для всех контроллеров, сгенерированных с использованием DeviseTokenAuth gem?
Версии используются:
devise_token_auth (0.1.36)
devise (~> 3.5.2)
rails (~> 4.2)
"ember-simple-auth": "0.8.0"
Я думаю, что вы будете иметь, чтобы использовать уголек-простой-авторизации без DEViSE плагина и катить его самостоятельно. Похоже, что модуль разработки разработан специально для ванильного дизайна. – penner
Github issue https://github.com/lynndylanhurley/devise_token_auth/issues/822 –