繁体   English   中英

使用现有访问令牌通过Google的gapi库进行的授权客户端JS API调用?

[英]Authorized client-side JS API calls with Google's gapi library with an existing access token?

一些背景

我使用Meteor作为应用程序框架,并使用accounts-google软件包对用户进行身份验证。 使用帐户包非常好,因为它可以处理获取访问令牌,在到期时刷新令牌等所有Meteor.user() 。但是,与Meteor.user()对象中填充的内容相比,我需要更多有关用户的配置文件信息。

使用Facebook,我可以使用Meteor.user().services.facebook.accessToken并遵循API上的文档轻松加载其客户端JS库并发出图api请求:

https://developers.facebook.com/docs/javascript/reference/FB.api

我的问题

在引用Google的JavaScript API时,文档指出,在进行API调用时,该请求会自动包括访问令牌, 但仅在使用gapi处理授权请求时才包含。

https://developers.google.com/api-client-library/javascript/features/authentication#MakingtheAPI请求

当依赖第三方授权软件包时(或当您的应用程序从客户端处理Google的身份验证时),这没有帮助。

是否可以使用gapi.client库方法在请求中使用现有访问令牌?

我为此苦苦挣扎了很长时间,并且能够在这里找到类似的问题:

Google OAuth2-使用外部生成的访问令牌-带有JS客户端库

但是,这个人已经知道该做什么,只是不知道如何拨打适当的电话,因此我很幸运找到了它。

为了使用现有的访问令牌发出gapi请求,您必须调用:

    gapi.auth.setToken({
        access_token: "token_string"
    });

在提出客户要求之前。 在Meteor中,您可以使用Meteor.user().services.google.accessToken代替上面的"token_string"

该方法的文档在这里:

https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauthsetToken

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM