对节点中的请求进行身份验证.js针对 Wordpress


Authenticate requests in node.js against Wordpress

我有一个Wordpress网站和一个node.js应用程序,它们共同构成了我正在构建的Web应用程序。我使用Node是因为 socket.io 和Wordpress还有很多其他原因。无论哪种方式,我都不能删除wordpress或节点

我面临的问题是确保通过wordpress登录的用户在向Node服务器发出请求时是有效的用户。

我是否应该在wordpress身份验证过程中将会话信息推送到节点服务器并让它维护自己的会话?然后在对 Node 服务器的后续请求中使用它?

我正在努力解决这个问题,并希望得到任何帮助。

看看 passportjs,它是一个用于 node 的身份验证模块.js它提供了不同的身份验证策略(截至今天超过 140 个)。幸运的是,有一个OAuth 2策略用于对wordpress进行身份验证。此策略的 github 页面位于此处。

护照

和护照wordpress都可以通过npm包管理器安装。之后,如果您的节点应用程序是快速.js应用程序,则可以使用路由中间件方法对每个请求进行身份验证passport.authorize()例如。来自护照-wordpress的文档:

定义策略。

passport.use(new WordpressStrategy({
    clientID: CLIENT_ID,
    clientSecret: CLIENT_SECRET
  },
  function(accessToken, refreshToken, profile, done) {
    User.findOrCreate({ WordpressId: profile.id }, function (err, user) {
      return done(err, user);
    });
  }
));

在路由中使用通过passport.authorize的策略(例如 expressjs):

app.get('/auth/wordpress',
  passport.authorize('wordpress'));
app.get('/auth/wordpress/callback', 
  passport.authorize('wordpress', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/');
  });

如果您不使用 expressjs 或不想使用 passportjs,请提供更多的信息,说明您的 wordpress 安装和节点.js应用程序如何协同工作,以及您在节点端使用.js类型的框架。