java - 使用 Google OAuth2 以编程方式登录网站

标签 java spring rest google-oauth

我有 SiteA 存储用户信息(姓名、办公室、部门等)。 后端公开了 REST WS,将信息提供给前端。该网站使用 Google OAuth2 身份验证 - 用户通过 Google 帐户登录。使用 OAuth2,我们让 google 处理登录(不需要用户名和密码)。 Google 会生成一个授权代码,该代码与 client_id 和 client_secret 一起使用来为用户生成 token 。

我有 SiteB。我正在创建一个每天执行一次的作业。 我需要它以编程方式登录到 SiteA,以便获得一个安全 token ,可以在向 SiteA 提供的 REST WS API 发出请求时使用该 token 并获取所需的信息。

我在网上找不到类似的问题。通常,一切都会以用户打开浏览器并导航到批准 URL 结束。

类似的东西是 Google Drive API - OAuth2.0: How to Automate Authentication Process? Doubts and Questions ,但它是关于无需登录即可连接到 Google 云端硬盘。

我开始怀疑这是否可能。有谁知道如何实现系统之间的这种通信方式吗?

我能做的唯一选择是连接到 SiteA 数据库并手动提取记录,但这会重复 SiteA 和 SiteB 中的登录。

最佳答案

我所问的问题在撰写问题时是不可能的。 为了解决这个问题,我们所做的就是延长用于登录 SiteA 的帐户的 token 的生命周期,并将其设置在 SiteB 的请求 header 中:

connection.setRequestProperty("Authorization", token);

我们从数据库更改了 token 的生命周期,由于这是内部系统,因此 token 的长生命周期不是问题。

另一个选择是关注 How to get offline token and refresh token and auto-refresh access to Google API并生成离线 token ,但想法仍然相同。

希望这对某人有帮助。

关于java - 使用 Google OAuth2 以编程方式登录网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47473089/

相关文章:

带有 quartz 调度程序的 spring 4

java - Spring启动REST API 404错误

ios - 使用 httpmethod PUT 或 DELETE 的 REST NSMutableURLRequest

rest - 如何使用在 YAML/swagger.io 中对自身具有 href 的数组构建响应?

java - 使用 classpathentry 包含多个 jar

java.sql.SQLException : Cannot create JDBC driver of class '' for connect URL 'null' ] with root cause 异常

Spring Boot与Angular(五)项目结构

Java二维数组乘法错误?

java - 在java中,如何让Amazon EC2实例看到它自己的标签?

java - 有什么方法可以使用 Maven 插件在 Android Studio 中禁用 javadoc 崩溃吗?