Contexto
O site que estamos construindo, em sua grande parte, irá fornecer dados públicos onde não é necessário uma Autenticação (o ato de fazer login), como a leitura das publicações, porém para justamente criar essas publicações (ou alterar elas) é necessário que o usuário se identifique, se autentique.
Execução
Vamos implementar o modelo mais popular de Autenticação que é o usuário informar o seu email e senha e, com estes dados batendo, criar uma sessão ativa no sistema e marcar nos cookies o token desta sessão para que o usuário utilize ele nas requisições seguintes. Não devemos utilizar um serviço extra para armazenar as sessões e devemos apenas utilizar o Postgres, incluindo para controlar a validade das sessões.
E pelo fato de neste estágio ainda não termos o Sistema de Autorização implementado, iremos continuar com o sistema retornando dados sensíveis e sem passar por um processo de filtro. De qualquer forma, deve ser possível passar por este fluxo:
Criar uma conta de usuário, onde a senha não pode mais ser armazenada em texto puro e deve se utilizar alguma forma de criptografia, como o bcrypt.
Este usuário deve conseguir fazer a autenticação (o ato de fazer login) ao conseguir criar uma sessão pelo endpoint /api/v1/sessions
Esta sessão não terá muita utilidade, pois a real utilidade irá vir com o Sistema de Autorização.
Contexto
O site que estamos construindo, em sua grande parte, irá fornecer dados públicos onde não é necessário uma Autenticação (o ato de fazer login), como a leitura das publicações, porém para justamente criar essas publicações (ou alterar elas) é necessário que o usuário se identifique, se autentique.
Execução
Vamos implementar o modelo mais popular de Autenticação que é o usuário informar o seu email e senha e, com estes dados batendo, criar uma sessão ativa no sistema e marcar nos cookies o token desta sessão para que o usuário utilize ele nas requisições seguintes. Não devemos utilizar um serviço extra para armazenar as sessões e devemos apenas utilizar o Postgres, incluindo para controlar a validade das sessões.
E pelo fato de neste estágio ainda não termos o Sistema de Autorização implementado, iremos continuar com o sistema retornando dados sensíveis e sem passar por um processo de filtro. De qualquer forma, deve ser possível passar por este fluxo:
Criar uma conta de usuário, onde a senha não pode mais ser armazenada em texto puro e deve se utilizar alguma forma de criptografia, como o bcrypt.
Este usuário deve conseguir fazer a autenticação (o ato de fazer login) ao conseguir criar uma sessão pelo endpoint /api/v1/sessions
Esta sessão não terá muita utilidade, pois a real utilidade irá vir com o Sistema de Autorização.