我一直使用google-auth-library@0.10.0 nodejs来验证我的api服务中的用户身份,现在它变成了1.0,所有的东西都坏了。
我之前使用了下面的例子:
https://developers.google.com/identity/sign-in/web/backend-auth
现在我不知道如何使用新的库来验证身份。示例如下:https://github.com/google/google-auth-library-nodejs解释了如何访问google,我只需要验证身份。这是我的代码:
const GoogleAuth = require('google-auth-library');
const auth = new GoogleAuth.GoogleAuth();
const google = require('googleapis');
const authData = {
'googleAuth': {
'clientID': 'xxxxxxxxxxx-aaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com',
'clientSecret': 'sssssssssssssssssssssssss',
'callbackURL': 'http://localhost:121212/auth/'
}
};
const CLIENT_ID = authData.googleAuth.clientID;
function verifyToken(token) {
let tokenPromise = new Promise(function(resolve, reject) {
client.verifyIdToken(
token,
CLIENT_ID,
// Or, if multiple clients access the backend:
//[CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3],
function(e, login) {
if (e) {
return reject(e);
} else {
var payload = login.getPayload();
var userid = payload['sub'];
//console.log(payload, userid, e, login);
return resolve(login);
// If request specified a G Suite domain:
//var domain = payload['hd'];
}
});
});
return tokenPromise;
};它工作得很好,只是为了得到googleUserId。
现在我有了这个错误:
错误:此方法接受options对象作为第一个参数,其中包括idToken、audience和maxExpiry。
我知道我没有正确地传递参数,也许这不是use..but的方法,我怎么知道是哪个方法以及它是如何接受参数的呢?我找不到任何有关google-auth-library@1.0的文档...有人正在生产中使用它??
发布于 2018-01-16 05:39:16
verifyIdToken已更改。下面是一个有效的示例。
import { OAuth2Client } from 'google-auth-library';
const client = new OAuth2Client(
'xxxxxxxxxxx-aaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com,
'sssssssssssssssssssssssss',
'http://localhost:121212/auth/',
);
client.verifyIdToken({
idToken: TOKEN,
audience: CLIENT_ID_1 // If you have multiple [CLIENT_ID_1, CLIENT_ID_2, ...]
}, (err, login) => {
console.log(login);
});这是最近才测试的。
谷歌需要更新他们的文档。
请注意,您也可以为验证id标记选项指定一个maxAge。
下面是从源代码中复制的接口
export interface VerifyIdTokenOptions {
idToken: string;
audience: string|string[];
maxExpiry?: number;
}如您所见,idToken和audience是必需的,而maxExpiry是可选的。
来源可以在here上找到
https://stackoverflow.com/questions/48191603
复制相似问题