我有SiteA存储用户信息(姓名,办公室,部门等)。 后端有暴露的REST WS,它将信息提供给前端。该网站使用Google OAuth2身份验证 - 用户通过Google帐户登录。使用OAuth2,我们让google处理登录(无需输入用户名和密码)。 Google会生成一个授权代码,该代码与client_id和client_secret一起使用,以便为用户生成令牌。
我有SiteB。我正在创建一项每天要执行一次的工作。 我需要它以编程方式登录到SiteA,这样我就可以获得一个安全令牌,我可以在SiteA提供的REST WS API请求中使用它并获取所需的信息。
我无法在网上找到类似的问题。一切通常都取决于用户打开浏览器并导航到批准URL。
类似的内容是Google Drive API - OAuth2.0: How to Automate Authentication Process? Doubts and Questions,但它是关于在没有登录的情况下连接到Google云端硬盘。
我开始怀疑这是可能的。有没有人想出如何在系统之间实现这种通信方式?
我能做的唯一选择是连接到SiteA DB并手动提取记录,但这会复制SiteA和SiteB中的登录。
答案 0 :(得分:0)
在撰写问题时,我所要求的是不可能的。 我们为解决此问题所做的是延长用于登录SiteA的帐户的令牌的生命周期,并将其设置在SiteB请求的标头中:
connection.setRequestProperty("Authorization", token);
我们从数据库更改了令牌的生命周期,因为这是内部系统,令牌的长寿命不是问题。
另一种选择是关注How to get offline token and refresh token and auto-refresh access to Google API并生成离线令牌,但想法仍然相同。
希望这有助于某人。