Como lembrete, este projeto está sendo construído sobre o seguinte projeto inicial no Glitch , ou clonado a partir do GitHub . O caminho básico que esse tipo de autenticação seguirá no seu aplicativo é: - Usuário clica em um botão ou link enviando-os para o nosso percurso para autenticar usando uma estratégia específica (EG. Github)
- Sua rota chama
passport.authenticate('github')
que os redireciona para o Github. - A página em que o usuário acessa, no Github, permite que eles efetuem login, caso ainda não estejam. Em seguida, ele pede que eles aprove o acesso ao perfil deles em nosso aplicativo.
- Em seguida, o usuário é retornado ao nosso aplicativo em um URL de retorno de chamada específico com o perfil dele, se ele for aprovado.
- Eles agora estão autenticados e seu aplicativo deve verificar se é um perfil de retorno ou salvá-lo em seu banco de dados, se não estiver.
Estratégias com o OAuth exigem que você tenha pelo menos um ID do cliente e um Segredo do cliente, que é uma forma de verificar de quem é a solicitação de autenticação e se ela é válida. Estes são obtidos a partir do site com o qual você está tentando implementar a autenticação, como o Github, e são exclusivos do seu aplicativo - NÃO PODEM SER COMPARTILHADOS e nunca devem ser carregados em um repositório público ou gravados diretamente em seu código. Uma prática comum é colocá-los em seu arquivo .env e referenciá-los como: process.env.GITHUB_CLIENT_ID
. Para este desafio, vamos usar a estratégia do Github. A obtenção da ID do cliente e do Segredo no Github é feita nas configurações do perfil da conta em "configurações do desenvolvedor" e " Aplicativos OAuth ". Clique em "Registrar um novo aplicativo", nomeie seu aplicativo, cole o URL na página inicial ( não o URL do código do projeto ) e, por último, no URL de retorno, cole no mesmo URL da página inicial, mas com "/ auth / github / callback 'adicionado em. É para onde os usuários serão redirecionados para que possamos lidar após a autenticação no Github. Salve as informações retornadas como 'GITHUB_CLIENT_ID' e 'GITHUB_CLIENT_SECRET' em seu arquivo .env. Em seu projeto remixado, crie duas rotas aceitando solicitações GET: / auth / github e / auth / github / callback. O primeiro deve apenas chamar o passaporte para autenticar o 'github' e o segundo deve chamar o passaporte para autenticar o 'github' com um redirecionamento de falha para '/' e, se for bem-sucedido, redirecionar para '/ profile' (semelhante ao nosso último projeto). Um exemplo de como '/ auth / github / callback' deve ser semelhante é como lidamos com um login normal em nosso último projeto: app.route ('/ login')
.post (passport.authenticate ('local', {failureRedirect: '/'}), (req, res) => {
res.redirect ('/ profile');
});
Envie sua página quando achar que está certo. Se você estiver com erros, confira o projeto até este ponto aqui .
## Instructions