Google OAuth:如何使用刷新令牌?

2024-02-11

我可以将 Android 设备上的一次性使用令牌换成访问令牌 and a 刷新令牌。我正在尝试弄清楚如何使用刷新令牌.

I found this https://developers.google.com/accounts/docs/OAuth2WebServer#refresh它通过 HTTPS 请求工作,但我想知道 Java SDK 中是否有某个地方可以处理刷新?


你不需要。只需在每次 HTTP 会话之前调用 GoogleAuthUtil.getToken(),GoogleAuthUtil 将确保您获得一个有效的会话,并在必要时刷新。

编辑:哦,好的,他正在服务器上执行此操作。下面是一些使用刷新令牌的 java 代码:

       String data = "refresh_token=" + mRefreshToken +
                "&client_id=" + Constants.WEB_CLIENT_ID +
                "&client_secret=" + Constants.WEB_CLIENT_SECRET +
                "&grant_type=refresh_token";
        byte[] body = data.getBytes();

        URL url = new URL(Constants.GOOGLE_TOKEN_ENDPOINT);
        conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setFixedLengthStreamingMode(body.length);
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.getOutputStream().write(body);

        body = XAuth.readStream(conn.getInputStream());
        JSONObject json = new JSONObject(new String(body));

        String accessToken = json.optString("access_token");
        if (accessToken == null) {
            throw new Exception("Refresh token yielded no access token");
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google OAuth:如何使用刷新令牌? 的相关文章

随机推荐

  • 为区域注册过滤器

    有没有办法为特定区域注册过滤器 例如下面的代码全局注册授权过滤器 强制进行身份验证 services AddMvc config gt var policy new AuthorizationPolicyBuilder RequireAut
  • URL 的锚点部分是否发送到 Web 服务器?

    比如说 有一个网址 http www example com hello 会不会 hello根据标准 是否将东西发送到网络服务器 现代浏览器如何运作 这个问题的答案与以下问题的答案类似检索 ASP NET URL 中的锚链接 https s
  • clojure 应用程序使用 eval 泄漏内存

    我的 clojure 应用程序评估单独定义的代码 edn文件在运行时 即如果 edn文件更改后 所包含的函数定义将重新加载到原子中 该原子不断用于计算 如果不受限制的话 应用程序似乎会在一段时间后填满 JVM 的元空间 无限制 堆空间使用情
  • IE问题:它可以处理多少个CSS包含?

    我在主题 Drupal 时遇到了一个奇怪的行为 我打开了一些模块 向页面添加了 5 到 10 个链接标签 虽然这些新的样式表被添加到 Firefox 的级联中 但在 IE8 中 通过添加这些样式表 浏览器会从层次结构中丢弃之前添加的 CSS
  • 找不到任何满足 newrelic-plugin-agent 要求的下载

    我尝试安装 MeetMenewrelic plugin agent如中所述https github com MeetMe newrelic plugin agent https github com MeetMe newrelic plug
  • DirectX12 - 执行命令列表和呈现函数

    我在微软的示例中发现 void D3D12HelloTriangle OnRender Record all the commands we need to render the scene into the command list Po
  • 如何检查进程是否具有管理权限

    如何正确检查进程是否以管理权限运行 我检查了IsUserAnAdimMSDN 中的函数 https msdn microsoft com en us library windows desktop bb776463 aspx 但不建议这样做
  • Angular 7:从订阅内部调用时,ChangeDetectorRef detectorChanges() 会导致无限循环

    在阅读了与变更检测和类似帖子相关的所有材料并未能解决我的问题后 我在这里发帖 变化检测器参考detectChanges 从订阅内部调用时会导致无限循环 如果我不打电话detectChanges I get ExpressionChanged
  • Python Pandas read_csv 跳过前 x 和后 y 行

    我想我可能在这里遗漏了一些明显的东西 但我对 python 和 pandas 很陌生 我正在读取一个大文本文件 只想使用范围 61 75496 中的行 我可以跳过前 60 行 keywords pd read csv keywords li
  • 如何在 Spring Boot Maven 多模块项目中包含另一个模块的资源

    我有一个 Spring Boot Maven 多模块项目 如果spring boot模块依赖模块A并在src main resources模块文件夹A我想在最终的 Spring Boot 应用程序中捆绑一个属性文件或其他一些资源 我该如何实
  • nil:NilClass 的未定义方法“map”

    当用户尝试更新其个人资料时 我的应用程序似乎随机抛出 nil NilClass 的未定义方法 map 错误 但奇怪的是 它说更新时发生错误 但错误行实际上在视图中 完整错误 users update ActionView TemplateE
  • Dynamic_cast 没有按预期抛出异常

    基于这个答案 在 C 中查找对象的类型 https stackoverflow com questions 351845 finding the type of an object in c 我写了这段代码 static TVALUE ge
  • 当我对符号矩阵进行行归约时,为什么 SymPy 给出了错误的答案?

    如果我要求 SymPy 对奇异矩阵进行行归约 nu Symbol nu lamb Symbol lambda A3 Matrix 3 nu 1 0 0 3 nu 2 nu 1 2 0 0 2 nu 1 nu lamb 2 3 0 0 nu
  • Safari 中的 Vue.js 渲染问题

    我有一个使用 Vue 和 Laravel 编写的作品集网站 它使用 v for 呈现项目缩略图 除了 Safari 之外 这在每个浏览器上都工作得很好 但有一个奇怪的问题 除非用户调整浏览器窗口的大小 否则图像根本不会显示 相关代码如下 d
  • 如何在使用 Python 运行 wkhtmltopdf.exe 时停止弹出窗口

    我正在使用 wkhtmltopdf exe 使用 python 将 html 转换为 pdf wkhtmltopdf exe 的弹出窗口使我在运行它时很难处理任何其他事情 我必须转换大约 200K 个文件 并且必须同时处理其他事情 但它确实
  • 是否可以将摘要式身份验证与 XMLHTTPRequest 一起使用?

    我有一个简单的问题 是否可以将摘要式身份验证与 XMLHTTPRequest 一起使用 如果答案是否定的 那么技术原因是什么 或者如果可能的话 我该怎么做 非常感谢 谷歌到目前为止还没有好的答案 EDIT 感谢您的回答 在收到随机数后修改标
  • 设置 WPF ScrollViewer 中何时滚动

    我有一个滚动查看器 其中包含一个网格 其中有一堆表单控件 文本框 复选框 组合框等 当我通过选项卡浏览控件时 滚动查看器将滚动 但仅在必要时滚动 我的意思是我通过选项卡浏览滚动查看器中的所有内容 并且仅当控件不可见时滚动查看器才会滚动 我想
  • 为什么这些线程不按顺序运行?

    当我运行这段代码时 include
  • 在 Laravel 中同步一对多关系

    如果我有一个多对多的关系 那么用它的关系更新关系是非常容易的sync method 但是我用什么来同步一对多关系呢 table posts id name table links id name post id 在这里 每一个Post可以有
  • Google OAuth:如何使用刷新令牌?

    我可以将 Android 设备上的一次性使用令牌换成访问令牌 and a 刷新令牌 我正在尝试弄清楚如何使用刷新令牌 I found this https developers google com accounts docs OAuth2