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?
Eu tenho lido sobre diferentes tipos de autenticação e sobre cookies, mas gostaria de uma descrição básica de como usar os dois juntos - só li que eles são usados juntos, mas não conseguiram encontrar uma descrição de como.
authentication
cookies
browser
Mastid
fonte
fonte
Respostas:
Um cookie é basicamente apenas um item de um dicionário. Cada item tem uma chave e um valor. Para autenticação, a chave pode ser algo como 'nome de usuário' e o valor seria o nome de usuário. Cada vez que você faz uma solicitação para um site, seu navegador inclui os cookies na solicitação e o servidor host verifica os cookies. Portanto, a autenticação pode ser feita automaticamente assim.
Para definir um cookie, basta adicioná-lo à resposta que o servidor envia após solicitações. O navegador adicionará o cookie ao receber a resposta.
Existem diferentes opções que você pode configurar para o servidor de cookies, como prazos de validade ou criptografia. Um cookie criptografado é geralmente chamado de cookie assinado. Basicamente, o servidor criptografa a chave e o valor no item do dicionário, para que apenas o servidor possa usar as informações. Então, o cookie estaria seguro.
Um navegador salvará os cookies definidos pelo servidor. No cabeçalho HTTP de cada solicitação que o navegador faz nesse servidor, ele adiciona os cookies. Ele adicionará apenas cookies para os domínios que os definem. O Example.com pode definir um cookie e também adicionar opções no cabeçalho HTTP para que os navegadores enviem o cookie de volta aos subdomínios, como sub.example.com. Seria inaceitável para um navegador enviar cookies para um domínio diferente.
fonte
Sei que isso está atrasado anos, mas pensei em expandir a resposta de Conor e acrescentar um pouco mais à discussão.
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:
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!
fonte
Autenticação baseada em cookie
A autenticação baseada em cookies funciona normalmente nestas 4 etapas:
O navegador enviará esse ID de sessão em cada solicitação subseqüente, a ID da sessão será verificada no banco de dados, com base nesse site de identificação de sessão identificará a sessão pertencente a qual cliente e, em seguida, dará acesso à solicitação.
Depois que um usuário efetua logout do aplicativo, a sessão é destruída, tanto do lado do cliente quanto do servidor.
fonte