小管

winner2009

   :: 首页  ::  ::  ::  :: 管理

最近公司(假如为www.AAA.com)需要和百度知道(简称bd以下皆同)合作,百度给了开发文档。

好处:省去了我们开发类似的项目,可能还会给网站的访问量有提升。人力物力都省去了,何乐而不为那。

坏处:也谈不上,就是我们的用户提问的问题,给了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从请求URLcallback参数中获取,需要携带token参数        

         Token生成可选方案:

1.       根据用户信息(uiduname等)加密生成token,验证token时可反解出用户信息提供给应用

2.       随机生成唯一Token,然后维护token到用户身份的映射关系

合作站点可根据当前用户系统情况,考虑复用现有CookieDB维护映射关系等方案实现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里面.

这个我也是猜的。按照道理应该是这样的。 

 

 二。身份验证接口:

 

这是百度提供的文档

功能描述:验证请求URLtoken参数的值是否有效,如果无效则返回未登录标识,如果有效则返回该用户的用户名和用户ID

         注意:用户身份验证是服务器发起验证请求,不携带浏览器cookie等本地信息,用户系统验证token有效性仅根据GET参数中的token对应的值进行判断,请勿使用本地cookie中任何内容为辅助判定依据。否则会导致验证失败!

请求URL Demo

http://login.AAA.com/auth.jsp?token=XXXYYYZZZ  (参数名称需要等于token);注:返回数据请直接将string输出至页面,且勿附带其它无效信息,用户名等中文请采用UTF-8编码

 

 

 2.bd 拿到加密的token后,通过get的方式调用身份验证接口,拿到解密的用户信息。显示到页面上。

 

三. 注册接口

 

这是百度提供的文档

功能描述:

1.       合作站点提供完整的注册页面

2.       用户注册成功后,需要自动进入登陆状态,并且支持回调指定页面,登陆细节同登陆接口一致,包括生成token以及写入cookie

请求URL Demo

http://register.xxx.com/register.jsp?callback=http://zhidao.xxx.com/login_finish

回调URL Demo

                   http://zhidao.xxx.com/login_finish?token=XXXYYYZZZ  (参数名称需要等于token

 

 

 3.如果登陆知道怎么回事了,这个就没有问题了。

 

四:退出接口:


清除我们存储的cookie; 

 

总结:

 

说了这么多,其实就是一个get请求。中间把敏感信息进行加密。 还是应了一句老话:万变不离其宗。

 

这是我开发完成后的理解,如果有不对的地方,欢迎大家指出来,我们共同进步。 如果在开发中也遇到了这样的问题大家多多交流。谢谢!

 

 

 

 

 

 

posted on 2010-11-24 10:37  管宇  阅读(972)  评论(0编辑  收藏  举报