首页 > 解决方案 > 如何更改谷歌令牌到期时间?

问题描述

我正在通过 google 使用 google auth 对用户进行身份验证,并且我exp在几秒钟内读取了一个过期令牌参数,但是当我不得不尝试将这个时间转换为年时,我的令牌将在 50 年后过期。我得到有关此的信息:google token info I using java library 并获得以下信息:

GoogleIdToken idToken = verifier.verify(idTokenString);
if (idToken != null) {
  Payload payload = idToken.getPayload();

  // Print user identifier
  String userId = payload.getSubject();
  System.out.println("User ID: " + userId);

  // Get profile information from payload
  String email = payload.getEmail();
  boolean emailVerified = Boolean.valueOf(payload.getEmailVerified());
  String name = (String) payload.get("name");
  String pictureUrl = (String) payload.get("picture");
  String locale = (String) payload.get("locale");
  String familyName = (String) payload.get("family_name");
  String givenName = (String) payload.get("given_name");
  Long expires = payload.payload.getExpirationTimeSeconds(); // this returns to me 1583167719 seconds. 

我可以更改令牌到期范围吗?

标签: javagoogle-oauthgoogle-authentication

解决方案


{
  "access_token": "XXXX", 
  "id_token": "XXX", 
  "expires_in": 3599, 
  "token_type": "Bearer", 
  "scope": "https://www.googleapis.com/auth/userinfo.profile", 
  "refresh_token": "XXX"
}

访问令牌响应应为 3600,即一小时,这是行业标准

3,600 秒 = 60 分钟 = 60 分钟

您要链接地址的页面是令牌验证,它只是验证 Id 令牌是否有效出于某种原因,此端点实际上返回令牌何时到期的 unix 时间戳(自 1970 年 1 月 1 日 UTC 以来的秒数)

{
  "iss": "https://accounts.google.com",
  "azp": "407408718192.apps.googleusercontent.com",
  "aud": "407408718192.apps.googleusercontent.com",
  "sub": "117200475532672775346",
  "at_hash": "3UrVjh2VbWK-KYiElu2eiA",
  "name": "Linda Lawton",
  "picture": "https://lh3.googleusercontent.com/a-/AOh14GhroCYJp2P9xeYeYk1npchBPK-zbtTxzNQo0WAHI20=s",
  "given_name": "Linda",
  "family_name": "Lawton",
  "locale": "en",
  "iat": "1583164112",
  "exp": "1583167712",
  "alg": "RS256",
  "kid": "17d55ff40991d6b0efd392b91a33e54c0e218b",
  "typ": "JWT"
}

在此处输入图像描述

我可以更改令牌到期范围吗?

授权服务器的所有者没有设置令牌到期。


推荐阅读