我最终尝试在nodemailer中使用refresh_token,但在尝试登录以授权应用程序时遇到有关cookie的问题。
根据请求将我发送到Google登录页面,我可以成功登录,但是,登录后,Google会抱怨我的浏览器已禁用Cookie,但显然情况并非如此。我有一种感觉它与我的请求电话有关,但对我来说似乎是对的。
有什么想法吗? 提前谢谢。
var request = require('request').defaults({jar: true});
router.get('/oauth', function(req, res){
var gEndpoint = 'https://accounts.google.com/o/oauth2/auth';
var gRedirectUri = 'http://localhost:3000/';
var gResponseType = 'code';
var gClientId = process.env.gmailClientId;
var gScope = 'https://mail.google.com/';
var gApprovalPrompt = 'force';
var gAccessType = 'offline';
var fullUrl = gEndpoint + '?' +
'redirect_uri=' + encodeURIComponent(gRedirectUri) +
'&response_type=' + encodeURIComponent(gResponseType) +
'&client_id=' + encodeURIComponent(gClientId) +
'&scope=' + encodeURIComponent(gScope) +
'&approval_prompt=' + encodeURIComponent(gApprovalPrompt) +
'&gAccessType=' + encodeURIComponent(gAccessType)
request(gEndpoint, function(){
request.get({ url: fullUrl }, function(err, response, body){
res.send(body);
})
})
})
编辑:结束使用谷歌的支持OAuth2的apis库。 https://github.com/google/google-api-nodejs-client/
仍然好奇为什么这不起作用......