Como faço para conectar um usuário no Clearance a partir de um roteador personalizado?

StackOverflow https://stackoverflow.com/questions/9451474

Pergunta

Estou adicionando Omniauth ao meu aplicativo, onde uso Clearance para autenticação regular.Encontrei uma parede tentando fazer login em um usuário programaticamente.

Estou procurando algo como sign_in_and_redirect da Devise, mas não consigo encontrá-lo na Clearance.

Eu tentei usar sign_in <User> e ligando redirect_to root_path logo depois.No entanto, quando a página raiz é carregada, o current_user não está definido.

Alguém sabe como fazer isso?Alguém conhece um tutorial para adicionar Omniauth ao Clearance?

Obrigado

Foi útil?

Solução

Eu não usei o Clearance, normalmente executo minha própria autenticação ou uso o Devise, mas uma rápida olhada no código me diz que sign_in(@user) não faz nada além de definir @current_user=@user então você precisa de alguma maneira de persistir essas informações antes de redirecionar.Clearance parece usar um Remember_token para isso, então eu tentaria (não testado) algo assim:

sign_in(@user)
cookies['remember_token'] = @user.remember_token
redirect_to(root_path)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top