oauth2Client.getToken缺lessrefresh_token
我有一个小型快递服务器,有两个路线。 然后它将json标记写入一个文件(我知道非常不安全)。 出于某种原因,没有refresh_token
。 在文档中,对于access_type
offline
的评论获取了已设置的refresh_token
,但仍然不起作用
access_type: 'offline', // 'online' (default) or 'offline' (gets refresh_token)
这里是快递服务器,对不起,如果承诺抛出任何人。
var Promise = require("bluebird") var express = require('express') var app = express() var google = require('googleapis') var OAuth2 = google.auth.OAuth2 var clientSecrets = require("./client_secrets.json") var oauth2Client = new OAuth2(clientSecrets.web.client_id, clientSecrets.web.client_secret, clientSecrets.web.redirect_uris[0]); oauth2Client.getToken = Promise.promisify(oauth2Client.getToken) var fs = Promise.promisifyAll(require("fs")) app.get('/google', function (req, res) { var url = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: "https://www.googleapis.com/auth/drive" }) return res.redirect(url) }) app.get('/oauth2callback', function (req, res) { return oauth2Client.getToken(req.query.code).then(function(tokens){ fs.writeFileAsync("./tokens.json", JSON.stringify(tokens), "utf8"); return res.json(tokens) }).catch(function(err){ return res.redirect("/google") }) }) var server = app.listen(3000, function () {})
refresh_token
仅在用户最初使用其帐户授权您的应用程序时发送。 所以它的getToken
函数只会在第一次返回(因为你应该存储它)。 新增了approval_prompt: "force"
到generateAuthUrl
选项,我可以每次都得到它。
- GoogleloginNodejs中的Android服务器端身份validation
- NodeJS JWT Sign.sign TypeError:不是缓冲区
- 谷歌API日历手表不起作用,但渠道创build
- 无法通过nodejs中的google api发送邮件
- 如何刷新Google Analytics(分析)报告API v3的访问令牌
- OAuth2Client应该创build每个请求或caching每个用户?
- 如何使用google-api-nodejs-client为nodejs发送带有gmail api附件的邮件
- Google云端硬盘API服务帐户域内
- Google API,drive.files.list和仅返回子文件