谷歌的 Oauth 流程

发布于 2024-12-17 17:06:03 字数 799 浏览 2 评论 0原文

我正在尝试为我的 google 网络应用程序实现 Oauth。我正在研究一个 POC,它工作正常,但我很困惑,不知道如何才能最好地实现它。

我正在使用 scribe java API 进行 Oauth。

这是我正在执行的步骤。

  1. 从 Google 获取请求令牌。
  2. 将用户重定向到 Google 以对其进行自我验证并授权我的服务访问他/她的一些详细信息。
  3. 通过提供请求令牌和谷歌给出的验证码从谷歌获取访问Toekn。
  4. 一旦谷歌提供访问令牌,即可访问用户信息。

现在我主要的困惑是在第三步,因为我正在开发一个网络应用程序,所以这将是一个两步过程。

  1. 将用户重定向到 google
  2. 处理回 google 重定向。

为了获得访问令牌,我需要提供与步骤 1 中获得的相同的请求令牌,否则我的请求将被用户拒绝。 请求令牌包含 2 个内容

  1. Toekn --> 这是基于注册的应用程序,所以不是问题
  2. Secret --> 这始终是一个随机字符串,因此在请求访问令牌时它应该是相同的,

这意味着我需要存储这个秘密要么在我的会话中,要么在某个地方,以便当用户被重定向回我的应用程序时我可以访问这个秘密。

我的困惑是,因为为了将其保存在会话中,我必须创建一个唯一的密钥以及某种在其他操作类中访问它的方法,该操作类将处理 Google 重定向,我如何才能实现这一点,因为在给定时间这么多用户可以要求使用谷歌登录。

我们将非常感谢这方面的任何帮助。

提前致谢

I am trying to impliment Oauth for my webapplication for google.I am worked upon a POC and it working fine but i have a confusion and not sure how best it can be achieved.

I am using scribe java API for Oauth.

here are the steps i am performing.

  1. Getting request token from Google.
  2. Redirecting user to Google to authenticate them self and authorize my serivice to access his/her few details.
  3. get Access Toekn from google by providing request token and verification code given by google.
  4. Accessing user info once google provide Access token.

now my main confusion is at step no 3, since i am working on a web-application so it will be a 2 step process.

  1. Redirecting user to google
  2. Handling back google redirect.

In order to get an Access token i need to provide same request token which i got at step1 else my request being rejected by the user.
The request token contains 2 things

  1. Toekn -->which is based on the registered application so not an issue
  2. Secret-->This is always being a random string so it should be same when asking for access token

that means i need to store this secret either in my session or some where so that i can access this secret when user is being redirected back to my application.

My confusion is,since in order to save it in session i have to create a unique key and some way to access it in the other action class which will handle Google Redirect back how can i achieve this since at a given time so many user can ask to login using google.

any help in this regard will be much appriciated.

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玻璃人 2024-12-24 17:06:03

当您收到请求令牌 + 令牌秘密时,使用请求令牌作为会话的唯一密钥来存储令牌信息。授权过程完成后,在回调 URL 中,您可以访问请求令牌(它是传递给回调 URL 的参数之一)。使用此参数作为会话密钥,您可以从会话中恢复令牌信息,包括令牌秘密,并使用它来签署您的请求以更改 请求令牌 <代码>访问令牌。收到访问令牌后,将返回一个新的令牌秘密给您,您可以从会话中删除旧的。

我怎样才能实现这一点,因为在给定时间有这么多用户可以要求
使用谷歌登录

这不是任何问题,因为对于您网站上的每个用户,您都会获得不同的请求令牌

When you receive the request token + token secret, use the request token as the unique key of your session to store the token information. After the authorization process, in the callback url, you have access to the request token (it's one of the parameters passed to the callback url). Using this parameter as the session key, you can restore the token information from session, including the token secret, and use it to sign your request for changing the request token for access token. After receiving the access token, a new token secret is returned to you and you can delete the old one from session.

how can i achieve this since at a given time so many user can ask to
login using google

This is not of any problem because for every single user on your site, you are given a different request token.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文