Spring引导webapp作为Google Oauth2的客户端

时间:2017-04-28 16:47:27

标签: spring-boot google-calendar-api spring-security-oauth2

我正在使用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

1 个答案:

答案 0 :(得分:0)

当我解释google Oauth2 doc时,您会在用户同意时获得授权码。此代码应该用于从API获取访问令牌和刷新令牌。

  

结果是应用程序可以使用的授权代码   交换访问令牌和刷新令牌。

您是否尝试过this