Node.js PassportJS给了我代币,但返回了一个未经授权的密码
我正在为访问GoogleAPIv3的桌面应用程序编写一个Web服务器,为此我需要使用OAuth2.0 Web服务器使用带有Node.js PassportJS给了我代币,但返回了一个未经授权的密码,node.js,express,passport.js,google-oauth,Node.js,Express,Passport.js,Google Oauth,我正在为访问GoogleAPIv3的桌面应用程序编写一个Web服务器,为此我需要使用OAuth2.0 Web服务器使用带有passport-google-oauth20策略的PassportJS,它可以工作,因为我收到了访问令牌和刷新令牌 我不打算保留用户数据,也不需要桌面应用程序的cookies。我真正需要的是accessToken和refreshToken,这样用户就不必每次都登录 到目前为止还不错,但在谷歌发送代币后,它不知何故失败了?我敢肯定,发送401计划的不是谷歌,而是我的设置方式
passport-google-oauth20
策略的PassportJS,它可以工作,因为我收到了访问令牌和刷新令牌
我不打算保留用户数据,也不需要桌面应用程序的cookies。我真正需要的是accessToken和refreshToken,这样用户就不必每次都登录
到目前为止还不错,但在谷歌发送代币后,它不知何故失败了?我敢肯定,发送401计划的不是谷歌,而是我的设置方式
我试过了,但这对我不起作用,因为我需要代币
以下是策略设置:
const passport=require(“passport”);
const GoogleStrategy=require('passport-google-oauth20')。策略;
passport.use(
谷歌新战略(
{
clientID:process.env.CLIENT\u ID,
clientSecret:process.env.CLIENT\u SECRET,
callbackURL:“/oauth/callback”
},
(accessToken,refreshToken,uz,done)=>{
log(“访问令牌:”,访问令牌);
log(“刷新令牌:”,刷新令牌);
完成(空,空)
}
)
);
这是服务器的相关部分
server.get(“/authorized”,(req,res)=>res.send(“登录成功”);
server.get(“/fail”,(req,res)=>res.send(“登录失败”);
server.get(
“/oauth”,
passport.authenticate(“谷歌”{
范围:[”https://www.googleapis.com/auth/drive.file“,“电子邮件”],
accessType:“脱机”,
批准提示:“强制”,
})
);
server.get(
“/oauth/callback”,
passport.authenticate(“谷歌”{
successRedirect:“/authorized”,
failureRedirect:“/fail”,
failureFlash:没错,
没错,
})
);
如果您想亲自查看它,
在您的策略回调中,您需要向经验证的用户提供护照,否则它将认为是一个失败的身份验证尝试。 通过将done()
更新为以下内容,我可以使您的代码正常工作并重定向到授权的
路线:
(accessToken,refreshToken,ux,done)=>{
log(“访问令牌:”,访问令牌);
log(“刷新令牌:”,刷新令牌);
已完成(空,41;
}