você está usando cookie-parser?
Usando Redirecionamentos em Vez de Cookies
Olá a todos, obrigado por toda a orientação. Fiquei preso com a abordagem de cookies porque meu servidor está em um domínio diferente e o Safari está em guerra com cookies de terceiros. Escrevi uma pergunta e resposta no Stack Overflow com uma abordagem de redirecionamento, boa autenticação! ![]()
Gostaria apenas de dizer que também teria muito interesse em ter uma integração fácil da autenticação do Firebase no Discourse.
Hmm, qual é o propósito de fazer isso exatamente? Você não está usando a autenticação do Firebase em outro lugar em um aplicativo web além do Discourse? Eu estou e não quero mexer nessa configuração, eu preferiria como “local” (Authentication State Persistence | Firebase)
Apenas algumas notas para outros que seguirem este caminho:
- chame seu cookie de “__session” se você usar o Firebase Hosting. As regras de reescrita filtram todos os outros cookies para fins de cache.
- você vai querer substituir o código relevante acima por algo como isto para não permitir e-mails não validados (grande risco de segurança).
auth .verifyIdToken(idToken) .then(function (decodedClaims) { // Neste caso, estamos forçando que o usuário tenha feito login nos últimos 5 minutos. // e eles têm um e-mail verificado if ( decodedClaims.email_verified && new Date().getTime() / 1000 - decodedClaims.auth_time < 5 * 60 ) { return auth.createSessionCookie(idToken, { expiresIn }); } throw new Error("UNAUTHORIZED REQUEST!"); }) - há uma configuração de “redirecionamento de logout” no Discourse. Provavelmente você vai querer usá-la para acessar uma URL que limpe o cookie __session (só pode ser feito por meio de uma chamada de API de backend) para que o usuário não seja automaticamente logado como o mesmo usuário de antes quando tentar fazer login novamente.
Onde você pode implementar este código?