跬步 On Coding

Ajax中的jsonp理解

公司自有服务都是后台api来实现,即使是website也是通过调用api获取来渲染网页,正常的Ajax中请求都是调用浏览器的XMLHttpRequest接口来异步请求数据,但是无论是Chrome,还是IE都有一个限制,就是不能跨域通过XMLHttpRequest来发请求.

话说你有过墙梯我有张良计,聪明的开发者总是会有办法来绕过浏览器跨域的限制来请求数据,在HTML中具有src属性的标签例如script,img都是可用跨域来请求src指向的资源数据的,既然script标签可以跨域,那就利用这个来实现跨域.但是script标签返回的数据不能直接是json格式,需要是标准的javascript函数调用,所以需要返回的数据中包括一个在已有js函数的本地调用方式,传入我们需要的数据,这里的数据才是json格式的.

发送请求:

<script type="text/javascript" src="http://server2.example.com/RetrieveUser?UserId=1823&jsonp=parseResponse"> </script>

openshift平台DIY环境配置Tornado

openshift官方和社区提供不少配置好的环境,也包括python2.7和python3.3下的tornado套件。
一方面希望拥有更高的使用自由,另一方面希望熟悉一下openshift的DIY环境,本着这个目的,自行创建一个DIY环境,在上面安装运行python 2.7.10和Tornado 3.2。

【Step1、创建DIY环境】

【Step2、安装python 2.7.10】

通过python -V看到系统已预装python 2.6.6,直接在$OPENSHIFT_DATA_DIR下安装2.7.10可以正常使用,但需要注意其调用路径为$OPENSHIFT_DATA_DIR/bin/python

邮件密码找回功能实现

思路

公司做项目,有用到注册,登录,密码找回等功能,以前自己写的论坛也实现了邮件密码找回,不过比较简单,直接生成随机密码,把新密码发送到用户邮箱.比较不安全,要实现一般网站的用链接找回的功能.

对链接的要求有如下:

  1. 每次生成的链接都必须不一样;
  2. 链接要有过期时间,过期以后无效;
  3. 后台在链接被请求时,必须验证链接是否有效.

Django实现简单OAuth2.0认证服务

开始写Django forum的RESTful api,首先解决用户认证的问题,使用OAuth2.0协议实现。

参考

理解OAuth 2.0

授权

OAuth2.0协议定义了4种授权模式,为了学习OAuth2.0授权协议,这里只实现简化模式。以下为简化模式授权过程。

RESTful API 理解

参考

理解RESTful架构
RESTful API 设计指南
来自HeroKu的HTTP API 设计指南(中文版)

概念

REST == Representational State Transfer,意思是表现层状态转化,我们来分解这个概念。
从字面以上理解这是一个操作的过程,实际上它省略了主语资源(Resources),合起来就是资源的表现层状态转化。