【问题标题】:How to use twitch-passport for authentication? Node Express Passport Next如何使用 twitch-passport 进行身份验证? Node Express Passport 下一个
【发布时间】:2020-02-06 00:51:48
【问题描述】:

我正在为我的网站设置身份验证。我希望将来有一些注册/连接帐户选项,但现在只关注抽搐身份验证。 我正在使用Next.js 进行服务器端渲染。 我已经从 http://www.passportjs.org/packages/passport-twitch/ 复制了代码,并将我的 client_id 和 secret 存储在 .env 文件中。

server.js->

const port     = process.env.PORT || 3000;
const dev      = process.env.NODE_ENV;
const nextApp  = next({dev});
const express        = require("express");
const bodyParser     = require("body-parser");
const cookieParser   = require("cookie-parser");
const cookieSession  = require("cookie-session");
const passport       = require("passport");
const twitchStrategy = require("passport-twitch").Strategy;

const app = express();

nextApp.prepare().then(() => {
  app.use(bodyParser.urlencoded({ extended: true }));
  app.use(cookieParser());
  app.use(cookieSession({secret:"somesecrettokenhere"}));

  app.use(passport.initialize());

  passport.use(new twitchStrategy({
      clientID: process.env.TWITCH_CLIENT_ID,
      clientSecret: process.env.TWITCH_CLIENT_SECRET,
      callbackURL: "http://localhost:3000/auth/twitch/callback",
      scope: "user_read"
    },
    function(accessToken, refreshToken, profile, done) {
      console.log("profile: "+profile);
    }
  ));

  passport.serializeUser(function(user, done) {
      done(null, user);
  });

  passport.deserializeUser(function(user, done) {
      done(null, user);
  });

  app.get("/", function (req, res) {
    return nextApp.render(req, res, '/Index', req.query);
  });

  app.get("/auth/twitch", passport.authenticate("twitch", {forceVerify: true}));

  app.get("/auth/twitch/callback",
  passport.authenticate("twitch", { failureRedirect: "/" }),
  function(req, res) {
      // Successful authentication, redirect home.
      res.redirect("/");
  });

  app.get('*', (req, res) => {
    return nextApp.render(req, res, '/Index', req.query);
  });

  app.listen(port, () => {
    //console.log(`listening on port ${port}`);
  });
});

当我点击/auth/twitch 路由时,我确实需要进行身份验证,然后给出“获取用户配置文件失败”。我对身份验证完全陌生,非常感谢任何帮助。谢谢!

编辑:作为旁注,我计划使用 uid-safe 作为 cookie 密码。

【问题讨论】:

    标签: node.js express authentication passport.js next.js


    【解决方案1】:

    所以我终于找到了在护照抽搐文件中粘贴控制台日志以查看抽搐错误说 v3 已死,v5 还活着的意义。然后看到它在叫海妖。更新为护照抽搐螺旋和瞧。

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 2014-11-19
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2019-01-31
      相关资源
      最近更新 更多