Android:如何通过 Google Sign-In API 获取 Refresh Token?

标签 android google-api google-play-services access-token google-signin

目前,我正在开发用户可以使用 Google 登录的应用程序。作为登录过程的一部分,我们需要将 Google ACCESS TOKEN 和 REFRESH TOKEN 发送到服务器端。

我正在通过以下方法检索访问 token ,

        mAccountName = googleSignInAccount.getEmail();
        String scopes = "oauth2:profile email";
        String token = null;
        try {
            token = GoogleAuthUtil.getToken(activity.getApplicationContext(), mAccountName, scopes);
        } catch (IOException e) {
            Logger.eLog(TAG, e.getMessage());
        }

我从中访问访问 token 的 GoogleAuthUtil 类没有刷新 token 的功能。那么如何获取Refresh Token呢?提前致谢!

最佳答案

你应该使用 server auth code flow via Auth.GOOGLE_SIGN_IN_API :在 Android 客户端上获取服务器授权代码,发送到您的服务器,服务器交换刷新代码和访问 token (带有 secret )。 blog post 中有更多详细信息

此外,如果您现在正在使用 GoogleAuthUtil.getToken 作为访问 token ,您确实想看看这个 Google Sign-In best practice blog post查看如何迁移到推荐的流程以确保安全性和最佳用户体验。

关于Android:如何通过 Google Sign-In API 获取 Refresh Token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154509/

相关文章:

android - 缩放在 android.webkit.WebView 中如何工作?

android - 定义启动 Activity ?

firebase - Actions on Google 以 "Sorry, I didn' 响应,但未得到任何响应。”

android - 错误的Google Play服务版本

android - Google Play 游戏服务成就 Activity 立即结束

android - 无法使用 Google Play 游戏服务创建房间

java - 可观察内的 RxJava 过滤器列表

Android Canvas 绘制的内容不超过屏幕尺寸

android - 我可以使用 Google Fit Sensor Api 获取卡路里和距离吗?

javascript - 如何更改 Google 图表中显示的数字格式?