使用 Passport.js 请求 requestVisibleActions 权限,以便在 Google+ API 中插入片刻

Ask requestVisibleActions permission using Passport.js for moment insertion in Google+ API

我正在开发一个 Node.js 应用程序,它使用 Passport.js 通过 Google Plus 进行身份验证。在稍后的阶段,我们引入了当用户在我们的网站留下评论时,将使用 Google+ 的 moment.insert 的活动添加到用户的 Google+ 供稿中。使用 moment.insert 发帖需要一个名为 requestvisibleactions 的特殊权限。 passport.js 文档没有说明我如何在登录时请求此类权限。

我当前的身份验证处理程序设置是这样的:

app.get('/auth/google', redirect, passport.authenticate('google', {
    scope: ['https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/plus.moments.write'],
    accessType: 'offline'
}));

任何关于如何在 passport.js 身份验证期间指定 this page 中提到的 requestvisibleactions 权限的指示都将受到赞赏。

问题是 passport.js 不包含对 requestvisibleactions 的支持,更新它的拉取请求已经存在了一段时间。正如我们在 Google+ insert moment with nodejs client 上讨论的,您需要做两件事:

1) 应用this patch,让passport.js能够正确设置参数。

2) 设置您希望能够在调用 passport.authenticate

时执行的操作

我没有测试过这个(因为我不使用 passport.js),但是一旦你完成了 (1),你应该能够使用这样的东西来 post 添加和回顾时刻:

app.get('/auth/google', redirect, passport.authenticate('google', {
    scope: ['https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/plus.moments.write'],
    accessType: 'offline',
    requestVisibleActions: 'http://schema.org/AddAction http://schema.org/ReviewAction'
}));