【发布时间】:2019-08-18 07:20:48
【问题描述】:
我的后端应用程序上有一个路由,它应该为从前端发送的代码返回一个 access token:
router.get('/token', (req, res) => {
const auth = googleService.getAuth();
auth.getToken(req.query.code, (error, res2) => {
const data = { code: 200 }
if (error) {
data.code = error.code;
data.error = error.response.data;
} else {
console.log(res2);
}
res
.status(data.code)
.send(data);
})
});
我从 googleService.getAuth() 中检索 auth:
const { google } = require('googleapis');
const keys = require('../config/keys');
var module = module.exports = {
getAuth: (token = false) => {
let auth = new google.auth.OAuth2(
keys.google.clientID,
keys.google.clientSecret,
keys.google.callbackURL
);
if (token) {
auth.credentials = {
access_token: token,
refresh_token: null
};
}
return auth;
},
youtube: google.youtube('v3')
};
在我的配置文件中,我有 callbackURL:
module.exports = {
google: {
apiKey: 'XXXXXXXXXXXXXXXX',
clientID: 'XXXXXXXXXXXXXX',
clientSecret: 'XXXXXXXXXXXXXXX',
callbackURL: 'http://localhost:3000/google/redirect'
}
}
我也在控制台中设置了它:
但是,我在调用这个路由的时候总是出现以下错误:
"error": {
"error": "redirect_uri_mismatch",
"error_description": "Bad Request"
}
【问题讨论】:
标签: node.js google-api google-api-nodejs-client