javascript - 针对 Wordpress 对 Node.js 中的请求进行身份验证

标签 javascript php wordpress node.js authentication

我有一个 Wordpress 网站和一个 node.js 应用程序,它们共同构成了我正在构建的 Web 应用程序。我使用 Node 是因为 socket.io 和 Wordpress 还有很多其他原因。不管怎样,我不能删除 WordPress 或 Node

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

我应该在 WordPress 身份验证过程中将 session 信息推送到 Node 服务器并让它维护自己的 session 吗?然后在对 Node 服务器的后续请求中就使用它?

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

最佳答案

看看passportjs这是一个 Node.js 的身份验证模块,提供不同的身份验证策略(截至目前超过 140 种)。幸运的是,有一个 OAuth 2 策略用于针对 WordPress 进行身份验证。该策略的github页面位于here .

passport 和passport-wordpress 都可以通过npm 包管理器安装。之后,如果您的 Node 应用程序是 express.js,您可以使用 passport.authorize() 路由中间件方法对每个请求进行身份验证。应用。来自 Passport-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安装和node.js应用程序如何协同工作以及您在 Node 上使用哪种框架。 js 端。

关于javascript - 针对 Wordpress 对 Node.js 中的请求进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22789074/

相关文章:

javascript - Ajax功能仅适用于一个div,不适用于其他div

wordpress - 无法安装插件和主题

javascript - 检测 WebBrowser 控件

javascript - D3 x 轴上的刻度错误

javascript - 当div的高度达到一定百分比时更改段落内容

javascript - 如何在所有 HTML 页面中一次性弹出?

php - 具有多种方法的 zend view helper?

php - 在 php 表中显示来自 Mysql 的外键

css - 如何在自定义 Wordpress 主题中调整特定图像的大小?

javascript - 添加每个帖子中唯一的按钮