技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> 百度站内应用开发体验及demo代码

百度站内应用开发体验及demo代码

浏览:3577次  出处信息

    写在前面: 博客很久没有更新了,主要是事情实在太多,不过最近也确实做了些比较有价值的事情,后面和大家慢慢分享

    笔者在腾讯主要负责开放平台openapi的工作,由于工作关系,这几天遍历了 百度、人人、新浪、淘宝 4个平台,研究了一下他们对于站内应用、网站登录、移动应用的整合方式,并开发了一个百度站内应用的demo。

    百度站内应用demo:

     体验地址(要体验的话,请先联系我开通白名单):

     http://app.baidu.com/app/enter?appid=385894&debug=1&is_from_dev=1&canvas_pos=platform

     代码已经开源在github上: https://github.com/dantezhu/baidu_app_demo,里面封装了一个baidu的sdk,有需要的朋友可以直接拿去用。

     开发语言用的是 python+flask

    移动应用 和 网站接入,这两种接入都是走的oauth的方式,这个基本所有平台都是一样的。

     而对于站内应用则和腾讯目前不太一样,所以着重说明一下在这里的处理,仅以百度举例:

     百度的教程在这里: 百度站内应用开发文档

    1. 当用户点击应用列表进入时,百度会传给应用两个参数: bd_user, bd_sig,看起来很像腾讯开放平台的openid和openkey,但是实际上百度这两个参数是无法做到很强的登录态保证的,仅能用来保证这两个参数不是人为篡改的。

    2. 如果两个参数校验通过,那么就要看应用的session中的userid和bd_user是否相同。其实这是百度推荐的一种应用开发方法,即为了避免每次用户进入应用都要调用oauth那一套登录体系,所以建议应用在第一次登录成功就写入到自己的session中。 对应到腾讯平台来看,我们其实并没有在wiki上强制或推荐要求用户这么做,主要是即使应用不写自己的session,每次都来调用腾讯验证openid、openkey的接口,对用户来说也不会有什么区别;但是对应百度的话,每次调用百度的登录授权接口,即使之前授权过也会弹出一次对话框(在文章最后的截图就能看出来)

    3. 如果第2步相同的话,证明用户可能是刚刚刷新了页面,所以就直接进入应用主页。如果不相同,那么就要开始标准的oauth2.0登录。但是这里百度是只推荐用 server-side的方式来走的,所以编码有些复杂,但是安全性也高一些。

    4. 如果用户登录授权ok,那么应用要在跳转到的redirect_url中写上session,然后跳转到首页。整个流程结束。

    以下是我写的百度站内应用demo的截图:

    

    

    

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1