我试图设置使用chrome.identity.getAuthToken
来获得登录用户的身份验证令牌,然后使用该使用护照和passport-google-token
一个Express服务器身份验证的Chrome扩展战略。谷歌验证令牌PassportJS返回401未授权
getAuthToken
给我的令牌,但当它发送到我的服务器,我得到一个401 unauthorized
错误。
我对Passport以及基于令牌的授权非常陌生,所以我不确定是否犯了错误或误解了它的工作原理。
我的Chrome扩展做到这一点:
chrome.identity.getAuthToken({"interactive": true}, function(token){
var url = "http://localhost:30000/auth/chrome";
var x = new XMLHttpRequest();
x.open("GET", url);
x.setRequestHeader('Authorization', "Bearer " + token);
x.send();
});
和令牌被正确地传递到我的回调。
我成立这样我的Express服务器和护照策略:
import * as express from "express";
import * as passport from "passport";
const GoogleTokenStrategy = require("passport-google-token").Strategy;
// set up Express and Passport...
passport.use(new GoogleTokenStrategy({
clientID: --client id--,
clientSecret: --client secret--
}, (accessToken, refreshToken, profile, done) => {
return done(null, profile);
}));
app.get('/auth/chrome', passport.authenticate("google-token"), (req, res) => {
res.send(req.user);
});
如果任何人都可以指出我还需要做什么或者我做错了什么,这将是非常感谢。
? –