首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用jwcrypto来验证谷歌生成的OAuth2 id_token吗?

我可以使用jwcrypto来验证谷歌生成的OAuth2 id_token吗?
EN

Stack Overflow用户
提问于 2013-05-03 05:18:41
回答 2查看 633关注 0票数 3

在本问题工作的基础上构建:What is the proper way to validate google granted OAuth tokens in a node.js server?

我可以使用jwcrypto库在node.js服务器中验证谷歌OAuth2令牌吗?我有谷歌提供的857字节的令牌,它使用谷歌在https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=的web端点进行验证。理论上,我可以使用令牌加上可用的谷歌证书here,它们看起来如下所示:

代码语言:javascript
复制
{
859c1234d08e008cc261ff11de5f8da1b8c4d490: "-----BEGIN CERTIFICATE----- <stuff> -----END CERTIFICATE----- ",
ad2a50cb70c5da789ee26d05b8f621a99e81202e: "-----BEGIN CERTIFICATE----- <stuff> -----END CERTIFICATE----- "
}

到目前为止,我甚至无法使用loadPublicKey方法将密钥加载到jwcrypto中。大概一旦我得到了这个工作,我就可以调用verify方法。网上有没有这方面的工作例子?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-07 15:39:09

我刚刚添加了一个新的npm模块,用于解码和验证谷歌的id_token。你可以在这里找到代码:https://github.com/gmelika/google-id-token

用法相当简单:

代码语言:javascript
复制
var googleIdToken = require('google-id-token');
var parser = new googleIdToken({ getKeys: getGoogleCerts });
parser.decode(sampleGoogleIDToken, function(err, token) {
    if(err) {
        console.log("error while parsing the google token: " + err);
    } else {
        console.log("parsed id_token is:\n" + JSON.stringify(token));
    }
});

上面引用的getGoogleCerts函数是用户提供的函数,它将根据提供的密钥返回适当的Google证书。一个非常基本的例子是:

代码语言:javascript
复制
var request = require('request');
function getGoogleCerts(kid, callback) {
    request({uri: 'https://www.googleapis.com/oauth2/v1/certs'}, function(err, response, body){
        if(err && response.statusCode !== 200) {
            err = err || "error while retrieving the google certs";
            console.log(err);
            callback(err, {})
        } else {
            var keys = JSON.parse(body);
            callback(null, keys[kid]);
        }
    });
}

显然,您可能希望在其中添加缓存。您可以使用自己喜欢的缓存机制来实现这一点。

希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2013-05-03 05:23:13

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16347907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档