Sou relativamente novo no jwt.io e na autenticação e estou usando o JWT.io da seguinte maneira.
Lado do servidor
Depois que o usuário faz login, eu gero um token userid
incorporado e o passo de volta para o usuário no corpo da mensagem
Navegador / JS do cliente Estou armazenando o token no localStorage e, para cada solicitação subsequente, estou passando o token nos cabeçalhos.
Authorization: Basic someEncryptedValue
Eu também usei
X-Auth-Token: someEncryptedValue
Eu poderia usar isso em um cookie?
Em seguida, no lado do servidor, estou verificando o token em relação ao segredo, verificando a validade, obtendo o ID do token e servindo a solicitação.
Está tudo correto neste fluxo de trabalho?
authentication
session
authorization
cookies
user2727195
fonte
fonte
Respostas:
Seu fluxo de trabalho está correto (supondo que você esteja usando HTTPS) e, sim, você pode simplesmente armazenar seu token em um cookie em vez de passá-lo no cabeçalho da autorização.
Não recomendo usar o OAuth2. Implementar até mesmo o fluxo mais simples corretamente adicionaria muita complexidade ao seu processo de login, e parece-me que você não precisa dele, pois as partes do "lado do servidor" estão todas no mesmo domínio.
Se fosse eu, eu usaria cookies. A adesão a esquemas bem compreendidos deixa menos oportunidades de confusão e significa que o navegador se encarrega de enviar e atualizar seu cookie (por exemplo, considere como você pode lidar com sessões com um tempo limite inativo)
fonte
Uma boa leitura. Ele fala sobre como salvar tokens no armazenamento local e depois enviar de volta via javascript na solicitação http.
: https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage
fonte
Todos os navegadores agora suportam Digest Auth, que é seguro mesmo através de HTTP. Dependendo dos requisitos exatos, isso pode ser suficiente.
fonte