Sei que isso está atrasado anos, mas pensei em 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 que envolva 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> Registrando-se
Antes de mais nada, o usuário precisa se inscrever. O cliente lança uma solicitação HTTP no servidor que contém seu nome de usuário e senha.
Etapa 2: Servidor> Manipulando inscrição
O servidor recebe essa solicitação e faz o hash da senha antes de armazenar o nome de usuário e a senha no seu banco de dados. Dessa forma, se alguém obtiver acesso ao seu banco de dados, não verá as senhas reais dos usuários.
Etapa 3: Cliente> Login do Usuário
Agora seu usuário efetua login. Ele fornece seu nome de usuário / senha e, novamente, isso é postado como uma solicitação HTTP no servidor.
Etapa 4: servidor> validando o login
O servidor procura o nome de usuário no banco de dados, faz o hash da senha de login fornecida e a compara com a senha do hash anteriormente no banco de dados. Caso contrário, podemos negar o acesso enviando um código de status 401 e finalizando a solicitação .
Etapa 5: Servidor> Gerando token de acesso
Se tudo der certo, vamos criar um token de acesso, que identifica exclusivamente a sessão do usuário. Ainda no servidor, fazemos duas coisas com o token de acesso:
- Armazene-o no banco de dados associado a esse usuário
- Anexe-o a um cookie de resposta a ser retornado ao cliente. Certifique-se de definir uma data / hora de vencimento 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> Fazendo solicitações de página
De volta ao lado do cliente, agora estamos logados. Toda vez que o cliente solicita 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 àquele no banco de dados associado a esse usuário. Se sair, o acesso é concedido.
Isso deve ajudar você a começar. Certifique-se de limpar os cookies ao sair!