Introdução
http://auth0.com é uma autenticação e autorização como um serviço. É basicamente o Devise, com esteróides, na nuvem.
Instruções de configuração para auth0 e rails & Ember:
https://auth0.com/docs/quickstart/spa/emberjs/rails
Testando
Auth0 fornece autenticação passando um JWT. No lado dos trilhos, ele usa uma gema chamada Knock para lidar com a análise do JWT e transmiti-lo ao Auth0 para autenticação. Para fazer o teste, você precisa interromper esta chamada. Aqui está o código para adicionar ao seu spec/support/auth0.rb
arquivo a fim de testar com ele.
def setup_knock
request.headers['authorization'] = 'Bearer JWTTOKEN'
knock = double("Knock")
user = create(:user)
yield user if block_given?
allow(knock).to receive(:current_user).and_return(user)
allow(knock).to receive(:validate!).and_return(true)
allow(Knock::AuthToken).to receive(:new).and_return(knock)
end
O yield user if block_given?
é apenas um auxiliar que permite que você faça a configuração para o usuário se ele precisar de coisas como roles
ou qualquer outra associação. A implementação é semelhante a esta:
algum api spec.rb
before(:each) do
setup_knock do |user|
create(:post, user: user, title: 'Some Blog Post')
end
end