用Javascript解码Google Oauth2访问令牌
我想在google oauth2用javascript提供的访问令牌中显示所有信息(给定名称、家庭名称、电子邮件、用户ID…) 是否有一个很好的示例/演示已经完成了?如果不是,那么在oauth2上使用javascript登录时解码访问令牌的最佳方法是什么 我发现这个例子显示了姓名和个人资料图片,但我不明白他们是如何做到的:用Javascript解码Google Oauth2访问令牌,javascript,oauth,google-api-client,Javascript,Oauth,Google Api Client,我想在google oauth2用javascript提供的访问令牌中显示所有信息(给定名称、家庭名称、电子邮件、用户ID…) 是否有一个很好的示例/演示已经完成了?如果不是,那么在oauth2上使用javascript登录时解码访问令牌的最佳方法是什么 我发现这个例子显示了姓名和个人资料图片,但我不明白他们是如何做到的: ()该信息不在令牌中,它只是一个用作授权证明的令牌,对于大多数或所有Google API,它都需要每小时刷新一次。该令牌证明用户已授权谷歌将该信息提供给该程序 在该示例步骤5
()该信息不在令牌中,它只是一个用作授权证明的令牌,对于大多数或所有Google API,它都需要每小时刷新一次。该令牌证明用户已授权谷歌将该信息提供给该程序 在该示例步骤5中,对getUserInfo()的调用将令牌传递回Google。要使呼叫正常工作并获取信息,用户必须事先授予该权限:
USERINFO_SCOPE: 'https://www.googleapis.com/auth/userinfo.profile'
权限与应用程序绑定,授权也绑定。您可以通过此功能进行解码-
const {OAuth2Client} = require('google-auth-library');
const client = new OAuth2Client(CLIENT_ID);
async function verify() {
const ticket = await client.verifyIdToken({
idToken: token,
audience: CLIENT_ID,
});
const payload = ticket.getPayload();
const userid = payload['sub'];
console.log(userid);
}
verify().catch(console.error);
输出为:-
{ iss: 'accounts.google.com',
azp:
'89838985845-261g3g9ob1244uvajvvj4fkueehhdfhsj.apps.googleusercontent.com',
aud:
'89838985845-261g3g9ob1244uvajvvj4fkueehhdfhsj.apps.googleusercontent.com',
sub: '1001728418648724577297',
email: 'rajputankit22@gmail.com',
email_verified: true,
at_hash: 'y0_OmfSbg-iHOq__Km-5kw',
name: 'Ankit Kumar Rajpoot',
picture:
'https://lh3.googleusercontent.com/a-/AAuE7mBrCW_ubLUHpnqwQZ1DvLDb9E4IHxfy43K6amNwt1Q=s96-c',
given_name: 'Ankit',
family_name: 'Kumar Rajpoot',
locale: 'en',
iat: 1580591026,
exp: 1580594626,
jti: 'fbbfca7sghsdhjfghsdfgh74888jhsd88s986d9876b30d' }
在第5步中,他们使用它来获取名称和图片:$('#uName').append(user.name)$('imgHolder').attr('src',user.picture);但是什么是.append和.attr?啊,那是jquery。。。它只是将用户名附加到id为“uName”的html元素,并将id为“imgHolder”的图像的源属性设置到用户的图片链接。()使用此代码仍有困难。还有其他更好的只使用JS的例子吗?继续搜索。他们有大量的文档操场和隐藏在()