问题
I'm working on a Node.js application that uses Passport.js for authenticating with Google Plus. In a later stage now, we have introduced of adding activities using Google+'s moment.insert to the user's Google+ feed when they leave reviews at our site. Posting using moment.insert
needs a special permission called requestvisibleactions
. The passport.js documentation doesn't say how I can ask for such permissions while logging in.
My current auth handler setup is like this:
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'
}));
Any pointers on how I can specify the requestvisibleactions
permission mentioned in this page during passport.js authentication is appreciated.
回答1:
The problem is that passport.js doesn't include support for requestvisibleactions
, and the pull request to update it has been sitting there for a while. As we discussed on Google+ insert moment with nodejs client You will need to do two things:
1) Apply this patch, which lets passport.js be able to set the parameter correctly.
2) Set the action that you wish to be able to do as part of the call to passport.authenticate
I have not tested this (since I don't use passport.js), but once you have done (1), you should be able to use something like this to be able to post Add and Review moments:
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'
}));
来源:https://stackoverflow.com/questions/27896015/ask-requestvisibleactions-permission-using-passport-js-for-moment-insertion-in-g