YouTube Oauth с passport.js

#javascript #express #oauth #youtube #passport.js

Вопрос:

Поэтому я пытаюсь добавить YouTube Oauth на свой веб-сайт. Я использую next.js для моего переднего конца и экспресс для заднего конца.

задняя часть:

 const express = require("express");
const app = express();
const cors = require("cors");
const passport = require("passport");
const passportSetup = require("./passport-setup");

app.use(
    cors({
        origin: ["http://localhost:3000"],
    })
);

app.get(
    "/login/youtube",
    passport.authenticate("google", {
        scope: ["profile", "https://www.googleapis.com/auth/youtube.readonly"],
        accessType: "offline",
    }),
    (req, res) => {
        res.status(200);
    }
);

app.listen(4000, () => console.log("listening on port 4000"));
 

passport-setup.js:

 const passport = require("passport");
const YoutubeStrategy = require("passport-youtube-v3").Strategy;
require("dotenv").config();

passport.use(
    new YoutubeStrategy(
        {
            callbackURL: "http://localhost:3000/success",
            scope: ["https://www.googleapis.com/auth/youtube.readonly"],
            authorizationParams: {
                access_type: "offline",
            },
            clientID: process.env.YOUTUBE_CLIENT_ID,
            clientSecret: process.env.YOUTUBE_CLIENT_SECRET,
        },
        () => {}
    )
);
 

внешний интерфейс:

 const Login = () => {
    const makeOauthRequest = async () => {
        await fetch("http://localhost:4000/login/youtube");
    };
    return (
        <>
            <div>
                <button>Instagram</button>
                <button>Facebook</button>
                <button>Twitter</button>
                <button>Spotify</button>
                <button onClick={makeOauthRequest}>YouTube</button>
            </div>
        </>
    );
};

export default Login;
 

Каждый учебник, который я смотрел, делает это без интерфейсной библиотеки, такой как us react, вместо этого они используют либо необработанный html, либо ejs. Поэтому пути, которые они создают с экспресс передний конец URL-адреса маршрутов, которые видит пользователь на веб-сайте, поэтому я подумал, что, когда они выходят на маршрут они в основном делают запрос GET, поэтому я попытался сделать это с выборки функции, но когда я нажимаю на YouTube-кнопка всплывает эта ошибка Error: Unknown authentication strategy "google" , поэтому я изменил метод от Google в YouTube, и теперь эта ошибка всплываетвведите описание изображения здесь

Thank You!