Nesse exemplo temos um formulário de login que envia os dados para a rota /sign_in
. Lá nós invocamos a autenticação com env['warden'].authenticate!
que executa a estratégia :password
que verifica se o usuário e senha estão na base de dados e monta a sessão e envia o cookie para o cliente.
Entrar na pasta do exemplo:
cd password_strategy/
Instalar as dependências:
bundle install
Executar o projeto:
rackup
No segundo exemplo a autenticação é feita na rota /login
e passada para o warden através do comando env['warden'].set_user(user, store: false)
. Com isso o warden-jwt_auth monta o token JWT e retorna para o cliente no header Authorization
. Segue uns exemplos das requests usando curl
.
curl --request POST \
--url http://localhost:9292/sign_in \
--header 'Content-Type: multipart/form-data' \
--form email=developer@developer.com \
--form password=12345678 \
-v
curl --request GET \
--url http://localhost:9292/user_info \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwic2NwIjoiZGVmYXVsdCIsImF1ZCI6bnVsbCwiaWF0IjoxNjc4NzMyMTA4LCJleHAiOjE2Nzg3MzU3MDgsImp0aSI6ImY4OGU5YWEwLWQzMmUtNDgyMy04M2ZjLTVjYTViYmYxOThkNCJ9.FB_hfGm1C6O_4GFRuu0n8lqdVX2rE8647P7MMmh7oxQ'
Entrar na pasta do exemplo:
cd token_strategy/
Instalar as dependências:
bundle install
Executar o projeto:
rackup