[英]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.