我正在尝试链接到该帐户:
这是我的谷歌云功能
var AuthHandler = function() {
this.googleSignIn = googleSignIn;
this.googleSignInCallback = googleSignInCallback;
}
function googleSignIn(req, res, next) {
passport = req._passport.instance;
passport.authenticate('google',{scope: 'https://www.googleapis.com/auth/userinfo.email',
state:"google",response_type:"token"},
function(err, user, info) {
console.log(user);
})(req,res,next);
};
function googleSignInCallback(req, res, next) {
passport = req._passport.instance;
passport.authenticate('google',function(err, user, info) {
if(err) {
return next(err);
}
if(!user) {
return res.redirect('http://localhost:8000');
}
console.log(user._json.token);
// /res.redirect('/');
res.redirect('https://oauth-redirect.googleusercontent.com/r/xxxxxx#access_token=' + user._json.token + '&token_type=bearer&state=google')
})(req,res,next);
};
module.exports = AuthHandler;
在谷歌操作控制台中 :
我已经创建了隐式流程并给出了我的授权网址,如下所示:
https://[region]-[projectid].cloudfunctions.net/[functionname]/auth/google
Error :
这是浏览器网址
https://assistant.google.com/services/auth/handoffs/auth/complete?state=xxxx&code=xxxxxx
显示以下错误
参数“state”必须在查询字符串中设置。
Update 1
在开始这个实现之前,我已经遵循this https://stackoverflow.com/questions/44288981/how-to-authenticate-user-with-just-a-google-account-on-actions-on-google创建身份验证的解决方案。
这种方法的问题:
1.正如文档中所述,它没有重定向到 google.com,并且我无法访问token
使用APIAI
JavaScript 中的 SDK。但我仍然可以看到Access token
在模拟器中。为了更好地理解添加图像
这是我的模拟器 O/P
{
"response": {
"debug": {
"agentToAssistantDebug": {
"assistantToAgentDebug": {
"assistantToAgentJson": "{"accessToken\":\"xxxxxx\""
}
},
"errors": []
}
更新2:
所以我开始使用隐式流程进行创建,这是我的完整内容repo https://github.com/Webrusterkk/AI_Implict