首页 > 解决方案 > 使用带护照 js 的第三方登录时重定向到上一页

问题描述

我已经使用护照 js 用谷歌实现了登录,截至目前它重定向到家。登录可以通过每个页面标题中的模式调用。现在登录后,我想重定向到用户正在查看的页面。

app.js 用google调用登录:

app.get("/auth/google", passport.authenticate("google", {
  scope: ["profile"],
  prompt: "select_account"
}));

app.js 登录后将用户带回家:

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

我有一个面包屑中间件来打印前端的面包屑,我想在调用登录屏幕之前访问最后一个 crumb.url 以重定向到最后一页。

  get_breadcrumbs = function(url) {
      var rtn = [{}];
          acc = "";
          arr = url.split("?")[0];
          arr = arr.substring(1).split("/");

      for (i=0; i < arr.length; i++) {

        acc = acc+"/"+arr[i];

          rtn[i] = {name: arr[i], url: acc};
      }
      return rtn;
  };


  app.use(function(req, res, next) {
      req.breadcrumbs = get_breadcrumbs(req.originalUrl);
      next();
  });

我试图点击面包屑:

app.get("/auth/google", passport.authenticate("google", {
  scope: ["profile"],
  prompt: "select_account"
},
function(req, res, next){
  var redirect = res.breadcrumbs; // undefined
}
));

标签: javascriptnode.jspassport.js

解决方案


推荐阅读