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
emailesenhae, com estes dados batendo, criar uma sessão ativa no sistema e marcar noscookiesotokendesta 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:
bcrypt./api/v1/sessions