计划中的新的登录API(Web Service)接口和实现草案

新的登录API,主要有两个 Web Serivce 方法实现:

简单来说就是,登录前,现通过API,获得验证码文件流,和一个标示牌字符串(这个标示牌字符串在服务器段对应着这个验证码的实际值,可以认为是一个哈希表的名字和值这两个信息,这个信息被缓存15分钟,也就是如果你请求了登录前API信息,获得了登录前信息,但是15分钟内,没有请求登录方法,不论你输入的信息是否正确,都会报验证码过期了)

登录前获得登录参数方法

传入参数:一个不固定长度的字符串
传出参数:2个字符串,一个文件流

具体信息:
1、登录前方法传入的字符串参数:
这个字符串参数由很多信息组成。类似于如下的格式:
localtime=2006-01-05 19:20:23;CSDNTool=myCSDN;CSDNToolVersion=1.0.0.0
就类似于 http协议传递 Cookie 的那种方式,可以通过一个字符串传递多个参数。

2、登录前方法传出的字符串一
传入的参数格式是否正确,如果返回的参数不是大于0的整数,则表示有错误发生,否则传出的信息就是错误信息。

3、登录前方法传出的字符串二:
登录方法必须的一个输入参数,用于避免程序暴力破解登录API。

4、登录前方法传出的文件流:
类似目前CSDN登录那样,返回的验证码图片文件流。



登录方法API接口
传入参数:
1、用户登录名
2、用户登录密码
3、登录前方法传出的字符串二
4、验证码

传出参数:
一个登录信息类,这个类或者可以叫结构,包含以下信息:
1、用户帐号
2、用户是否已经成功登录,Bool型
3、用户登录错误信息,如果上述2的值为 false ,才需要看这个信息
4、用户登录警告信息,上述2的值为true,才需要看这个信息,但是这时候,我们认为用户是成功登录的,但是有些信息需要给用户提示,必须:最近你的登录请求很频繁,如果不是你自己在登录的话,有可能有人在暴力破解你的帐号
5、登录信息确认字符串(这个很重要,稍后单独说明)


登录信息确认字符串 说明:
这个信息是服务器段通过各种可逆,不可逆加密产生的信息,之后你要访问需要登录才具有的功能API,都需要传入这个参数。服务器就是通过这个字符串的解密操作来获得是谁在干这个操作。

另外,这个值不是固定不变的,比如你请求回复API的时候,除了要传入这个值外,系统也会有一个返回参数,返回这个值的最新值,之后如果你仍然用原来的值,会无法通过的。而需要用最新返回的这个值。

每个操作都需要进入这个值,同时又返回一个不一样的新的值,服务器段缓存了最后一次这个值,如果发现你的请求值跟缓存的不一样,不允许这个操作。

 

以上只是草案,最终版本也许会发生变化。

比如, 登录前API接口,返回文件流这里,可以用 WSE 来实现,也可以采用httphandel,建立一个虚拟的文件,让用户来访问,这样,就是不支持 WSE 3.0 规范的开发语言也可以用这个接口。

当然这个接口的参数可能在最终实现的时候,也会发生变化。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=586058


你可能感兴趣的:(web Service)