Como faço para conectar um usuário no Clearance a partir de um roteador personalizado?
-
13-11-2019 - |
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
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)