如何处理 urn:ietf:wg:oauth:2.0:oob 重定向在 Google Calendar API Authorization

我目前正在开发一个用java实现的已安装桌面应用程序。我打算将Google Calendar API集成到应用程序中。

在授权过程中,我进入了仅通过触发显示用户同意页面的浏览器来获取授权代码的阶段。然后,用户必须单击“接受”,并将重定向到显示授权代码的网页。用户应将此代码复制到 Eclipse System.in 以便继续授权过程(将授权代码交换为 TokenResponse)。

我的问题是,我如何简化此过程,以便用户不必为接收授权代码做这些愚蠢的复制和粘贴操作?(如果将项目编译为jar文件,则无论如何都不起作用...)目前我所知道的是,我需要提供一个回呼网址或其他东西,我只是无法弄清楚这一点。因此,我希望得到一个更具体的答案,而不是简单地告诉我这些概念。

提前致谢。


答案 1

您必须使用服务帐户(带有私钥)才能跳过涉及用户交互的步骤。这里有一个关于这个的详细指南。


答案 2

oauth2 授权流(我认为,这就是您正在执行的操作)定义了您的应用程序通过 HTTP 重定向获取流。

它是这样的:

  1. 您的应用程序打开一个套接字并在那里侦听 HTTP 请求
  2. 它现在打开浏览器,并允许用户输入他/她的凭据
  3. 用户单击提交并将凭据发送到 oauth 服务器
  4. 服务器检查凭据,如果正确,则将浏览器重定向到您的应用程序(重定向到您在 1 中打开的套接字)。
  5. 应用程序从浏览器获取身份验证代码,并将其与访问票证交换。

若要让服务器知道要重定向到的位置,请使用步骤 2 中的 oauth 参数redirect_uri


推荐