Google API调用方式总结——前端js调用和后端各种语言调用

实习期间接到需求,期望能在.net框架下的前端调用google drive api,并持有access_token和refresh_token以保持和google api的长时间连接(单独acccess_token只能维持3600秒访问时间)。

然而亲测前端使用纯js调用gapi只能获得access_token,无法同时得到refresh_token,最接近成功的方法如下:

GoogleAuth = gapi.auth2.getAuthInstance();
GoogleAuth.grantOfflineAccess().then((res) => {
                        var code = res.code;
                        window.code = code;
                    });

得到authorization code可以传给后端从而通过其他语言的api获得两个token,意味着google不建议在前端暴露的太多,想获得两个token需要将cuthorization code传到后端,然后通过各种api获取refresh_token。当然,由于后端发送请求没有跨域问题,也可以直接访问https://accounts.google.com/o/oauth2/token,请求方法为POST,如下:

https://accounts.google.com/o/oauth2/token code={AuthCode}&
client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&
redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code

其实后端api也是对这个方法的封装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值