下面的代码使用Google oauth2机制登录用户。我们需要在用户离线时处理用户日历的更新,所以我们最终需要“刷新令牌”。grantOfflineAccess()的结果是否返回刷新令牌(在下面,我可以看到response.code包含一个可能是刷新令牌的值)?
我如何获得一个刷新令牌,可以用来(服务器端)创建新的访问键,以便离线访问用户的谷歌日历?
<script type="text/javascript">
function handleClientLoad() {
gapi.load('client:auth2', initClient);
}
function initClient() {
gapi.client.init({
apiKey: 'MY_API_KEY',
clientId: 'MY_CLIENT_ID.apps.googleusercontent.com',
discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest'],
scope: 'https://www.googleapis.com/auth/calendar'
}).then(function () {
var GoogleAuth = gapi.auth2.getAuthInstance();
GoogleAuth.signIn();
GoogleAuth.grantOfflineAccess().then(function (response) {
var refresh_token = response.code;
});
});
}
</script>
<script async defer src="https://apis.google.com/js/api.js"
onload="this.onload=function(){};handleClientLoad()"
onreadystatechange="if (this.readyState === 'complete') this.onload()">
</script>
从JavaScript中获取刷新令牌有问题是有原因的。原因是这是不可能的。
JavaScript是一种客户端编程语言,要使其工作,您必须将客户机id和客户机机密与刷新令牌一起嵌入代码中。这将对任何在web页面上创建视图源的人都是可见的。
我想你知道为什么这可能是个坏主意。主要问题是GAPI
不会返回它,这个库只是没有这个能力(这并不是说我已经在原始JavaScript中尝试过,如果我问得好,OAuth服务器是否会返回它)。
如何使用java SDK获得Microsoft图形刷新令牌?我用的是java SDK的图形,得到了访问令牌。如何使用此AccesStoken在java SDK中获得刷新令牌?
我想使用谷歌作为OIDC协议的id提供商。我有一个简单的应用程序。它启动,正确地重定向到谷歌,然后返回到应用程序,打印用户详细信息并将其存储在会话中。但是,这种身份验证似乎来自id令牌,并且只有1h的过期时间 我的YML:
我已经用Jhipster创建了微服务(Spring Boot)应用程序(有网关微服务keybeat),还配置了keybeat。 一切正常,但我在注销应用程序中遇到了问题,当我从UI中点击注销API时,它只会从网关注销(不会破坏Keyclope会话) 注意:服务器没有在浏览器上保存任何cookie,除了JSESSIONID 我需要从KeyClope注销用户会话。为此,我浏览了以下链接 通过Keycl
我正在编写一个应用程序,调用来自Flutter的google fit rest api。 我需要使用(https://pub.dev/packages/google_sign_in)与谷歌签名。我可以毫无问题地获得一个令牌(见是否有人设法从谷歌登录(Flutter)获得id令牌),但如何获得一个新的令牌时,它是过期的? 我不想要求用户每小时登录并获得一个新的令牌
我如何从第一次授权代码中获得刷新令牌和访问令牌?并且,我如何重用这个刷新令牌来获得一个新的访问令牌,以便使用Java API上传到Google Drive?这不是一个web应用程序。它在Java Swing代码中。