authentication - session vs token




Como funciona a autenticação baseada em cookies? (2)

Alguém pode me dar uma descrição passo a passo de como funciona a autenticação baseada em cookie? Eu nunca fiz nada envolvendo autenticação ou cookies. O que o navegador precisa fazer? O que o servidor precisa fazer? Em que ordem? Como mantemos as coisas seguras?

Eu tenho lido sobre diferentes tipos de autenticação e sobre cookies, mas eu gostaria de uma descrição básica de como usar os dois juntos, eu só li que eles são freqüentemente usados ​​juntos, mas não consegui encontrar uma descrição de como.


Percebo que isso está atrasado anos, mas achei que poderia expandir a resposta de Conor e acrescentar um pouco mais à discussão.

Alguém pode me dar uma descrição passo a passo de como funciona a autenticação baseada em cookie? Eu nunca fiz nada envolvendo autenticação ou cookies. O que o navegador precisa fazer? O que o servidor precisa fazer? Em que ordem? Como mantemos as coisas seguras?

Etapa 1: Cliente> Inscrição

Antes de mais nada, o usuário precisa se inscrever. O cliente envia uma solicitação HTTP ao servidor contendo seu nome de usuário e senha.

Etapa 2: Servidor> Tratamento da inscrição

O servidor recebe essa solicitação e coloca a senha em hash antes de armazenar o nome de usuário e a senha em seu banco de dados. Dessa forma, se alguém obtiver acesso ao seu banco de dados, ele não verá as senhas reais dos usuários.

Etapa 3: Cliente> Login do usuário

Agora, o usuário faz login. Ele fornece seu nome de usuário / senha e, novamente, isso é postado como uma solicitação HTTP para o servidor.

Etapa 4: Servidor> Validando o login

O servidor procura o nome de usuário no banco de dados, criptografa a senha de login fornecida e compara-a com a senha anteriormente com hash no banco de dados. Se não fizer o check out, poderemos negar acesso enviando um código de status 401 e encerrando a solicitação .

Etapa 5: Servidor> Gerando o token de acesso

Se tudo der certo, criaremos um token de acesso, que identifica exclusivamente a sessão do usuário. Ainda no servidor, fazemos duas coisas com o token de acesso:

  1. Armazená-lo no banco de dados associado a esse usuário
  2. Anexe-o a um cookie de resposta para ser devolvido ao cliente. Certifique-se de definir uma data / hora de expiração para limitar a sessão do usuário

A partir de agora, os cookies serão anexados a todas as solicitações (e respostas) feitas entre o cliente e o servidor.

Etapa 6: cliente> Como fazer solicitações de página

De volta ao lado do cliente, agora estamos logados. Toda vez que o cliente faz uma requisição por uma página que requer autorização (ou seja, eles precisam estar logados), o servidor obtém o token de acesso do cookie e o verifica em relação ao no banco de dados associado a esse usuário. Se fizer o check out, o acesso é concedido.

Isso deve começar. Certifique-se de limpar os cookies após o logout!


Autenticação Baseada em Cookies

A autenticação baseada em cookies funciona normalmente nestes 4 passos -

  1. O usuário fornece um nome de usuário e senha no formulário de login e clica em Login.
  2. Depois que a solicitação é feita, o servidor valida o usuário no backend consultando o banco de dados. Se a solicitação for válida, ela criará uma sessão usando as informações do usuário obtidas do banco de dados e as armazenará. Para cada sessão, será criado um ID exclusivo chamado ID da sessão. Por padrão, a ID da sessão será fornecida ao cliente por meio do Navegador.
  3. O navegador enviará essa ID de sessão a cada solicitação subsequente, a ID da sessão será verificada no banco de dados, com base nesse site de identificação da sessão, o usuário identificará a sessão pertencente a qual cliente e, em seguida, concederá acesso à solicitação.

  4. Quando um usuário efetua logout do aplicativo, a sessão é destruída no lado do cliente e no lado do servidor.







browser