针对多个用户的基于OAuth的身份验证的Google+ API速率限制

时间:2015-04-14 07:21:12

标签: node.js google-api google-plus google-oauth

基于OAuth的G +身份验证是否存在任何API速率限制。

方案

考虑1000多人在同一时间点击我的代码来验证他们的G +帐户。

我正在使用 googleapis nodejs模块进行身份验证

var google = require('googleapis');
var OAuth2 = google.auth.OAuth2;
var plus = google.plus('v1'); 
var oauth2Client = new OAuth2(appId, appSecret, callbackURL);
    var scopes = [
                  'https://www.googleapis.com/auth/plus.me',
                  'https://www.googleapis.com/auth/userinfo.email'
                  ];
    var url = oauth2Client.generateAuthUrl({
        access_type: 'offline', // 'online' (default) or 'offline' (gets refresh_token) 
        scope: scopes // If you only need one scope you can pass it as string 
    });


    oauth2Client.getToken(googleCode, function(err, tokens) {
        if(!err) {
            oauth2Client.setCredentials(tokens);
            logger.debug(":: G+ access token ::" + JSON.stringify(tokens));
            var accessTokenJsonObj = JSON.stringify(tokens);
            oauth2Client.setCredentials({
                access_token: tokens.access_token,
                refresh_token: tokens.refresh_token
            });
            plus.people.get({ userId: 'me', auth: oauth2Client }, function(err, response) {
                // handle err and response 
                if(!err) {
                }
            }
     }

通过查看谷歌文档,我得到了以下细节。

  

每用户限制:5个请求/秒/用户

基于OAuth的身份验证每天是否有任何API速率限制适用于多个用户

由于

2 个答案:

答案 0 :(得分:3)

身份验证本身没有限制(据我所知),对Google+ API的调用有限。

plus.people.get来电使用您的登录配额,默认情况下每天允许20,000,000个请求,所有用户都有,所以如果您没有对Google+ API进行任何其他调用,则可以处理20,000,000个签名 - 每天ins。

您可以通过选择项目>来检查Google Developers Console中的配额。 API& Auth> API>已启用的API> Google+ API>配额。

如有必要,您还可以从该页面请求更多配额。

答案 1 :(得分:0)

此外,如果您正在使用交换refresh_tokens,则授权代码响应包括对user_id进行编码的id_token。

因此,您可以避免在每次登录时调用people.get API - 尽管您可能希望这样做以保持用户的个人资料更新。

有关详细信息,请参阅https://developers.google.com/identity/protocols/OpenIDConnect?hl=EN#obtainuserinfo