es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo redirigir la autenticación oauth2 al frontend en lugar de redirigirse al backend utilizando passport?

Utilizo Vue y Node y passport para la autenticación con las estrategias local y oauth2 (passport-github).

Mi estrategia local funciona, pero tengo problemas con mi oauth2.

Tengo un botón de “iniciar sesión con github” en mi página de inicio de sesión, cuando se hace clic, se realiza una solicitud axios a mi backend (http://localhost:3000/auth/github).

const api = axios.create({
    baseURL: 'http://localhost:3000/',
    withCredentials: true,
    timeout: 1000,
});

async function APIloginWithGitHub() {
    const response = await api.get('/auth/github')
    return response.data
}
router.get('/github', passport.authenticate('github'))

router.get('/auth/github/callback', 
  passport.authenticate('github'),
  function(req, res) {
    res.send('¡Ha sido autenticado correctamente!');
  });

En el nivel de middleware de mi backend, utilizo esta configuración de estrategia:

const GitHubStrategy = require('passport-github').Strategy;
const User = require('../models/User')

module.exports = function (passport) {
  passport.use(new GitHubStrategy({
    clientID: process.env.GITHUB_APP_ID,
    clientSecret: process.env.GITHUB_APP_SECRET,
    callbackURL: "http://localhost:3000/auth/github/callback"
  },
    async (token, tokenSecret, profile, done) => {
      console.log(profile)
    }
  ));
};

Esto redireccionará a la página de autenticación de github en el backend y podría causar problemas.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que hay problemas con el flujo de autenticación oauth2 con GitHub. Una sugerencia es comprobar si el ID del cliente y el secreto para la aplicación de GitHub son correctos y si la URL de devolución de llamada coincide con la configurada en la aplicación de GitHub.

    Otra sugerencia es comprobar si la URL de devolución de llamada de autorización en la configuración de la aplicación de GitHub coincide con la URL utilizada en la configuración del router en el backend.

    También puede ser útil añadir manejo de errores en el nivel de middleware para capturar cualquier error potencial durante la autenticación.

    En general, puede ser necesario realizar más solución de problemas y depuración para identificar la causa principal de los problemas con la autenticación oauth2 con GitHub.

Comments are closed.