首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google api刷新标记使用react-google-login返回null

google api刷新标记使用react-google-login返回null
EN

Stack Overflow用户
提问于 2018-12-29 21:02:00
回答 1查看 2.8K关注 0票数 4

刷新标记始终为空,我费力地阅读了文档并做了几个实验。但我无法让refreshToken续订访问令牌以供脱机使用。

我正在使用react-google-login来获取我的离线令牌。我假设这是正确设置的。

为了以防万一,设置如下:

代码语言:javascript
复制
    <GoogleLogin
        clientId="***"
        buttonText="Login"
        accessType="offline"
        responseType="code"
        scope={"https://www.googleapis.com/auth/calendar"}
        onSuccess={responseGoogle}
        onFailure={responseGoogle}
    />

但是当我使用授权码时,只会返回一个有效期为3600秒的访问令牌。我可以使用accessToken来访问api。但是似乎没有提供刷新令牌。

代码语言:javascript
复制
    GoogleTokenResponse tokenResponse =
            new GoogleAuthorizationCodeTokenRequest(
                    new NetHttpTransport(),
                    JacksonFactory.getDefaultInstance(),
                    "https://www.googleapis.com/oauth2/v4/token",
                    clientSecrets.getDetails().getClientId(),
                    clientSecrets.getDetails().getClientSecret(),
                    AUTH_CODE,
                    REDIRECT_URL)
                    .execute();



    String refreshToken = tokenResponse.getRefreshToken();
    String accessToken = tokenResponse.getAccessToken();

有什么问题的线索吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-29 21:49:12

它似乎与react-google-login有关...所以我一直在看错误的东西。添加approvalPrompt="force"prompt='consent'似乎可以解决这个问题。

代码语言:javascript
复制
    <GoogleLogin
        clientId="***"
        buttonText="Login"
        accessType="offline"
        responseType="code"
        approvalPrompt="force"
        prompt='consent'
        scope={"https://www.googleapis.com/auth/calendar"}
        onSuccess={responseGoogle}
        onFailure={responseGoogle}
    />
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53969774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档