假设我正在尝试使用OpenId来依赖我使用Web服务的n层网站。如果有些步骤看起来很奇怪,请告诉我。
1)我希望用户在文本框中输入他们的OpenId网址。例如:http://vidalsasoon.myopenid.com
2)然后,用户点击提交,使用OpenId api将输入的Url发送到我的Web服务。使用服务器上的OpenId API,我可以构建一个正确的OpenId请求。
3)用户收到他应该获得身份验证的Url。
4)用户被重定向到他们的提供商,登录,被重定向回我的网站。
在这里混淆:现在步骤2 - 4发生在用户和提供者之间。在这些步骤中不涉及我的Web服务。
我希望用户此时将他们想要的用户名和OpenId发送回Web服务。问题是我怎么知道用户/客户端没有篡改过它们?
答案 0 :(得分:0)
有两种方法可以验证用户是否已正确验证
在您自己和OpenID提供商之间建立共享密钥。当用户登录到提供者时,它与他们共享秘密,然后他们与您共享秘密,然后您可以根据原始共享密钥进行验证。
通过OpenIDs check_authentication规范。一旦用户向您传递信息以进行验证,请拨打此电话。 Link to Spec