API接口开发v2.1(百度知道)终于明白了
时间:2010-11-24 来源:管宇
好处:省去了我们开发类似的项目,可能还会给网站的访问量有提升。人力物力都省去了,何乐而不为那。
坏处:也谈不上,就是我们的用户提问的问题,给了bd。
既然bd把应用都部署好了,我们还需要开发什么,哈哈,需要的,bd的应用需要使用bd账号登陆,但是我们希望我们的用户
也可以登陆提问问题,所以就有了开发任务。
开发任务: 共4个 。 1.用户登录 2.身份验证 3. 注册 4.退出
目的: 注册为AAA下面的用户,可以在 zhidao.AAA.com (zhidao.AAA.com域名使用cname的方式指向到open.zhidao.baidu.com)中提出问题,回答问题。
下面我分别解释一下这几个接口干什么用:
一. 用户登录:
这是百度提供的文档第三方需提供的功能简介:
1. 合作站点提供完整的登录页面
2. 用户在登录页面登录成功后需要生成唯一性的Token(映射用户身份),然后需要将该token保存在站点大域的cookie中(确保zhidao.xxx.com域名能够获取到该cookie),例如www.xxx.com
3. 由于用户名密码错误等原因导致的登陆失败,在登录页面中直接给予提示,引导用户成功登陆,登陆成功后需要能够进行页面回调
请求URL Demo:
http://login.AAA.com/login.jsp?callback=http://zhidao.AAA.com/login_finish
url格式合作站点可自行确定,但是回调参数名称需要和其它下面接口统一一致,例如callback
回调URL Demo:
http://zhidao.AAA.com/login_finish?token=XXXYYYZZZ (参数名称需要等于token)
回调URL从请求URL的callback参数中获取,需要携带token参数
Token生成可选方案:
1. 根据用户信息(uid、uname等)加密生成token,验证token时可反解出用户信息提供给应用
2. 随机生成唯一Token,然后维护token到用户身份的映射关系
合作站点可根据当前用户系统情况,考虑复用现有Cookie、DB维护映射关系等方案实现Token的生成、验证。Token生成后保存在站点大域的cookie下,供问答平台后续用户身份验证使用。
1. 回调:callback=http://zhidao.AAA.com/login_finish?token=XXXYYYZZZ 是在我们站点登陆成功后,回调zhidao.AAA.com, 同时把用户名和ID加密传递过去。
就是token的值。 加密时为了安全,传递用户信息是为了在zhidao.AAA.com上面显示用户信息。这时候问题来了,我们传递过去的密文,那怎么显示那?这时候就是身份验证
接口了。
补充:存储cookie的目的: 如果用户在www.AAA.com中直接登陆,这时候是不回调zhidao.AAA.com的。所以bd为了能拿到这个token,需要我们放到cookie里面.
这个我也是猜的。按照道理应该是这样的。
二。身份验证接口:
这是百度提供的文档
2.bd 拿到加密的token后,通过get的方式调用身份验证接口,拿到解密的用户信息。显示到页面上。
三. 注册接口
这是百度提供的文档
1. 合作站点提供完整的注册页面
2. 用户注册成功后,需要自动进入登陆状态,并且支持回调指定页面,登陆细节同登陆接口一致,包括生成token以及写入cookie