google的Oauth流

google的Oauth流,oauth,scribe,Oauth,Scribe,我正在尝试为我的google Web应用程序实现Oauth。我在一个POC上工作,它工作得很好,但我有一个困惑,不知道如何最好地实现它 我正在为Oauth使用ScribeJavaAPI 以下是我正在执行的步骤 正在从Google获取请求令牌 将用户重定向到Google以进行自我验证,并授权我的服务访问他/她的一些详细信息 通过提供请求令牌和谷歌提供的验证码,从谷歌获得对KN的访问权 一旦谷歌提供访问令牌,就可以访问用户信息 现在我主要的困惑是在第3步,因为我正在开发一个web应用程序,所以这将是

我正在尝试为我的google Web应用程序实现Oauth。我在一个POC上工作,它工作得很好,但我有一个困惑,不知道如何最好地实现它

我正在为Oauth使用ScribeJavaAPI

以下是我正在执行的步骤

  • 正在从Google获取请求令牌
  • 将用户重定向到Google以进行自我验证,并授权我的服务访问他/她的一些详细信息
  • 通过提供请求令牌和谷歌提供的验证码,从谷歌获得对KN的访问权
  • 一旦谷歌提供访问令牌,就可以访问用户信息
  • 现在我主要的困惑是在第3步,因为我正在开发一个web应用程序,所以这将是一个两步的过程

  • 将用户重定向到google
  • 处理回谷歌重定向
  • 为了获得访问令牌,我需要提供与步骤1相同的请求令牌,否则我的请求将被用户拒绝。 请求令牌包含两个内容

  • Toekn-->基于注册的应用程序,因此不是问题
  • 机密-->这始终是一个随机字符串,因此在请求访问令牌时应该是相同的
  • 这意味着我需要将这个秘密存储在会话中或其他地方,以便在用户被重定向回我的应用程序时可以访问这个秘密

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

    这方面的任何帮助都将是非常宝贵的


    提前感谢

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

    既然在给定的时间有这么多用户可以要求 使用谷歌登录

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