我正在使用Meteor作为应用程序框架,我使用accounts-google
包来验证用户身份。使用帐户包是非常好的,因为它处理获取访问令牌的所有脏工作,到期时刷新它们等等。但是,我想要有关用户的更多配置文件信息,而不是Meteor.user()
对象中填充的信息。
通过Facebook,我可以轻松加载客户端JS库并使用Meteor.user().services.facebook.accessToken
生成图API请求并遵循API文档:
https://developers.facebook.com/docs/javascript/reference/FB.api
在引用Google的JavaScript API时,文档指出在进行API调用时,请求会自动包含访问令牌,但仅在使用gapi处理授权请求时。
当依赖第三方授权包时(或当您的应用程序远离客户端处理Google的身份验证时),这没有用。
有没有办法在使用gapi.client
库方法的请求中使用现有的访问令牌?
答案 0 :(得分:4)
我在这方面挣扎了很长时间,我在这里找到了类似的问题:
Google OAuth2 - Using externally generated Access Token - With JS Client Library
然而,这个人已经知道必须做什么,而不是如何拨打适当的电话,所以我发现它是相当幸运的。
要使用现有访问令牌发出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