目前,我有以下代码,它给了我access_token,但为了使事情更安全,我只想要作为code
的响应,我可以从前端发送到服务器并交换access_token和refresh_token的代码。如何使用gapi-script
实现此功能?
我的代码如下所示:
import './App.css';
import { Component } from 'react';
import { gapi, loadAuth2WithProps} from 'gapi-script';
class MyAppLogin extends Component {
async componentDidMount() {
const auth2 = await loadAuth2WithProps(
gapi,
{
client_id: '<MY CLIENT ID>',
scope: 'email https://www.googleapis.com/auth/content https://www.googleapis.com/auth/siteverification https://www.googleapis.com/auth/adwords',
access_type: 'offline'
}
);
this.attachSignin(document.getElementById('customBtn'), auth2);
}
attachSignin (element, auth2) {
auth2.attachClickHandler(element, {},
(googleUser) => {
console.log(googleUser)
}, (error) => {
console.log(JSON.stringify(error))
});
};
render() {
return (
<div id="customBtn" className="btn login">
Login
</div>
)
}
}
export default MyAppLogin;
我已经挖到这个遗留插件有点在这里,如果我使用插件我得到的代码成功,如果我使用下面的代码:-
<GoogleLogin
clientId='<CLIENT ID>'
onSuccess={this.onSuccess}
onFailure={this.onFailure}
responseType='code'
online='offline'
/>
但是,我不想使用这个插件,而是想使用本机gapi
插件.对此有任何意见吗?
1条答案
按热度按时间tf7tbtn21#
使用grantOfflineAccess()解决了这个问题,如下所示:
是相当混乱的组合看react-google-login的源代码(遗留插件,使用gapi内部)和上述链接的谷歌文档让这个决议。