我正在使用Spring Boot编写webapp。对于我的项目,我需要连接到Google以检索有关用户的日历信息。 因此,我将Spring安全性Oauth2集成到用户连接中,之后我想使用Google日历API。
连接正常,之后,Google会重定向到此控制器定义的网页应用页面:
@Controller
class ConnectedController {
private String token
@RequestMapping("/welcome")
String welcome(Principal principal,
Model model) {
OAuth2Authentication auth = principal
model.addAttribute("user", auth.userAuthentication.details)
// credential
def api = new CalendarApi()
token = auth.details.tokenValue
println "Token: [$token]"
api.fetch(token)
return 'welcome'
}
}
对于Calendar API,我需要访问令牌值和刷新令牌值。我在主体对象中找到了访问令牌值,但在哪里是刷新令牌?
有关信息,我配置了如下所示的授权以获得resfresh令牌(通常):
userAuthorizationUri: https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&prompt=consent
答案 0 :(得分:0)
当我解释google Oauth2 doc时,您会在用户同意时获得授权码。此代码应该用于从API获取访问令牌和刷新令牌。
结果是应用程序可以使用的授权代码 交换访问令牌和刷新令牌。
您是否尝试过this?