如何仅使用HTTP GET方法执行身份验证?

时间:2013-08-13 13:06:06

标签: authentication http-get public-key

我必须创建一种方法来保持会话身份验证从应用程序 A 到应用程序 B ,但我无法使用:

  • SSO
  • POST电话

并且,我们知道GET不是一个好的选择,但我需要使用它。所以,我认为使用类似“公钥”的东西,你对这种方法的看法是什么?

我想:

  1. 用户在应用程序A中进行身份验证。
  2. 进入应用程序A,有一个指向应用程序B的链接;用户点击此链接
  3. 应用程序打开应用程序B页面发送“公钥”(数据库持久身份验证密钥?)
  4. 应用程序B验证此密钥并授权用户。

1 个答案:

答案 0 :(得分:1)

在步骤3中,不要考虑“公钥”,而应考虑“会话令牌”。具体来说,A用

重定向到B.

http://b.application.com?token=123-3-2-1-3-2-2-1-2-32-3-5-2-4-5245

代币应该是独特的,并且是短暂的。

B然后直接联系 并询问会话令牌背后的身份:

http://a.application.com/userservice/getuser/123-3-2-1-3-2-2-1-2-32-3-5-2-4-5245

因为B直接联系A,所以用户无法伪造无效令牌 - 随机令牌只指向A处的不存在会话。