标准流程
- 用户登录『我的』网站,打开『授权框』。
- 这个授权框中包含了『我』在『OpenID提供方』的应用注册信息,授权框将我的信息和用户提供的帐号密码一起提交到『OpenID提供方』。
- 提供方将我的信息和用户信息各自验证。返回用户的『授权令牌』给『我』。
- 我将『令牌』和我需要获取的用户信息请求打包再发给提供方。
- 提供方返回『用户授权』的用户信息给我。
- 流程结束。具体可以参考qq的登录文档或新浪的第三方登录文档。
技术做法
- 人人提供了自己的javascript类库来向人人官网发送请求,并接受返回的用户信息。
- 开心、新浪、支付宝是通过弹窗,由第三方书写cookie来实现交互。
- 腾讯是直接通过页面传值实现。
纪实
- 人人接口
- 放置跨域文件,请参考人人文档。当加入开心接口的,需要在人人跨域文件中写死域名。
- 在页面中加载脚本:
- 插入代码:
- 参考了xiami.com的写法。
- 开心接口
- 放置跨域文件
- 载入脚本<script type='text/javascript' src='http://www.***/api/kaixin_user/js/featureloader-16.js'></script>(需从开心下载)
- 在页面中放置打开窗口的辅助程序:
- 在按钮处放置代码:onclick="openWind('http://www.kaixin001.com/login/connect.php?appkey=58698957564026581170a8ff0735a091&re=/api/kaixin_user/kx001_receiver.html&t=57',640,480);return false;"
- 放置开心客户端代码:
- 在授权完成后开心会将用户信息写入COOKIE。
- 新浪接口
- 在按钮处放置:openWind('http://www.5paike.com/api/sina_user',640,480);return
false;
- 在回调页面载入新浪提供的库文件,实例化通信类,与新浪进行通信。
- 在按钮处放置:openWind('http://www.5paike.com/api/sina_user',640,480);return
- 腾讯接口
- 按照腾讯的7步文档完成通信,其中计算签名是需要主要参数要按照字典排序,组成的签名分两部分进行urlencode,然后再用&符号连接。
- 腾讯现在还不让普通接入点获取用户的详细信息。