动易2005整合接口开发规范

动易2005整合接口开发规范

一、 概述

动易2005 整合程序采用网页表单提交+网页跳转两种方式实现动易和目标程序的同步注册、登陆、注销,取代了以往的通过互相读写cookies的整合方式。整合的系统以及动易的系统均无需更改数据库,不影响以后升级。

目标程序可以采用任意语言编写接口,只要符合开发规范的接口,都可以登记组合到整合的系统中。与动易系统、动网论坛等组成一个全站统一登陆注销的完整系统。

2005版整合程序中的每一个程序可以放置于不同服务器、不同域名之下,通过一个统一的网站私钥识别程序的身份。

二、 目标程序提交数据到动易

1. 为了支持同时整合多套系统,必须由整合的多套系统中的一套作为中心系统,负责接受来自多系统中任何一个系统的数据,并将数据发送到所有其它系统。在2005版整合接口中,我们规定以动易2005作为整合的中心系统。所有其它整合进来的程序的任何涉及用户名、用户密码、用户Email、提示问题、答案(以下称“基本数据”)的操作,都应该先发送到动易系统的相关文件进行处理。动易系统会自动通知其它程序进行数据更新。

2. 各项操作传递的参数说明

1) 注册

用户在整合系统中的任何一个页面点击“注册”以后,该系统应该将其引导到动易的注册页面进行后续操作。此过程可以通过修改目标程序的链接实现,或者修改目标程序的注册文件进行跳转。

动易的注册页面: 动易目录/Reg/User_Reg.asp?ComeUrl=来源页面

参数说明:注册只需传递一个参数,即用户进入注册前所在页面的完整URL,动易在处理完注册以后,会返回该地址。

2) 登陆

用户在任何页面遇到登陆表单,输入用户名、密码、cookies保存选项后,表单数据应当提交到动易的登陆验证程序进行验证,通过验证以后,动易系统会通知所有整合的系统允许该用户登录,然后返回用户登录前所在页面。

动易的登陆验证程序:动易目录/User/User_ChkLogin.asp?username=用户名&UserPassword=用户密码&CookieDate=Cookies保存选项&ComeUrl=来源地址

参数说明:这里传递的用户名、密码都无需加密。四个参数可以采用Get或者Post方式传递均可。ComeUrl必须是完整URL

3) 注销

用户在任意页面点击“退出”或者“注销”,系统应当引导用户到动易的用户注销页面。动易会注销该用户的登陆并通知整合系统中的其它程序做同样操作。

动易的注销程序:动易目录/User/User_Logout.asp?ComeUrl=来源地址

参数说明:同注册。

4) 资料更新

用户在整合系统中任意一个程序进行基本资料的更新,都应到动易的用户控制面板进行,以确保全站信息的同步。

动易的资料修改程序:动易目录/User/User_Info.asp?Action=ModifyPwd

参数说明:无参数

5) 删除用户由于删除用户必须以动易管理员身份登陆动易后台,因此未提供对整合系统中其它程序同步删除用户的操作。建议需要删除用户时,登陆动易后台进行操作。动易系统会通知其它程序做相应处理。

三、 动易向目标程序返回数据


动易2005整合接口开发规范

一、 概述

动易2005 整合程序采用网页表单提交+网页跳转两种方式实现动易和目标程序的同步注册、登陆、注销,取代了以往的通过互相读写cookies的整合方式。整合的系统以及动易的系统均无需更改数据库,不影响以后升级。

目标程序可以采用任意语言编写接口,只要符合开发规范的接口,都可以登记组合到整合的系统中。与动易系统、动网论坛等组成一个全站统一登陆注销的完整系统。

2005版整合程序中的每一个程序可以放置于不同服务器、不同域名之下,通过一个统一的网站私钥识别程序的身份。

二、 目标程序提交数据到动易

1. 为了支持同时整合多套系统,必须由整合的多套系统中的一套作为中心系统,负责接受来自多系统中任何一个系统的数据,并将数据发送到所有其它系统。在2005版整合接口中,我们规定以动易2005作为整合的中心系统。所有其它整合进来的程序的任何涉及用户名、用户密码、用户Email、提示问题、答案(以下称“基本数据”)的操作,都应该先发送到动易系统的相关文件进行处理。动易系统会自动通知其它程序进行数据更新。

2. 各项操作传递的参数说明

1) 注册

用户在整合系统中的任何一个页面点击“注册”以后,该系统应该将其引导到动易的注册页面进行后续操作。此过程可以通过修改目标程序的链接实现,或者修改目标程序的注册文件进行跳转。

动易的注册页面: 动易目录/Reg/User_Reg.asp?ComeUrl=来源页面

参数说明:注册只需传递一个参数,即用户进入注册前所在页面的完整URL,动易在处理完注册以后,会返回该地址。

2) 登陆

用户在任何页面遇到登陆表单,输入用户名、密码、cookies保存选项后,表单数据应当提交到动易的登陆验证程序进行验证,通过验证以后,动易系统会通知所有整合的系统允许该用户登录,然后返回用户登录前所在页面。

动易的登陆验证程序:动易目录/User/User_ChkLogin.asp?username=用户名&UserPassword=用户密码&CookieDate=Cookies保存选项&ComeUrl=来源地址

参数说明:这里传递的用户名、密码都无需加密。四个参数可以采用Get或者Post方式传递均可。ComeUrl必须是完整URL

3) 注销

用户在任意页面点击“退出”或者“注销”,系统应当引导用户到动易的用户注销页面。动易会注销该用户的登陆并通知整合系统中的其它程序做同样操作。

动易的注销程序:动易目录/User/User_Logout.asp?ComeUrl=来源地址

参数说明:同注册。

4) 资料更新

用户在整合系统中任意一个程序进行基本资料的更新,都应到动易的用户控制面板进行,以确保全站信息的同步。

动易的资料修改程序:动易目录/User/User_Info.asp?Action=ModifyPwd

参数说明:无参数

5) 删除用户由于删除用户必须以动易管理员身份登陆动易后台,因此未提供对整合系统中其它程序同步删除用户的操作。建议需要删除用户时,登陆动易后台进行操作。动易系统会通知其它程序做相应处理。

三、 动易向目标程序返回数据

1. 动易向所有目标程序返回数据时,采用规范的格式,传递的是相同或类似的参数,目标系统的接口接到动易返回的数据后,先进行安全验证,通过后即进行相关操作,操作完成不提示信息自动退出。

2. 参数详解:目标接口程序?action=操作类型&name=用户名&Md5Info=验证串&pass=密码&lock=是否锁定&question=提示问题&answer=答案&email=电子邮件&sex=性别&save=Cookies保存选项

1) 目标接口程序,指的是与动易进行整合的系统(例如Dvbbs)的针对和动易整合的接口文件。在官方提供的动网整合包中,此接口文件为Interface.asp。用户可以根据需要自行开发整合接口文件,文件名建议使用Interface.asp/Interface.php/Interface.aspx/Interface.cgi,也可以使用其它文件名,只需在动易目录/Inc/UpiConfig.asp中做相关设置即可。

2) Action参数传递的是所要进行的操作。目前共有以下几种:
action=AddUser
:用户注册,需传递全部参数;
action=LoginUser
:用户登录,需传递用户名、密码、验证串、Cookies保存选项
action=LogoutUser
:用户退出(注销),传递用户名、验证串
action=ModifyInfo
:用户资料更新,传递完整参数
action=DelUser
:删除用户,传递用户名、验证串

3) Md5Info是整合的各个系统之间相互验证身份的凭据,因为不同的网站设置的SecurityKey不一样,因此Md5Info相同的就说明是来自整合的某一个程序。Md5Info的生成方式:先将要操作的用户名与SecurityKey连接成一个新的字符串,然后对该字符串进行32位加密。如果是不支持32位加密的系统,可以只进行16位加密,然后取Md5Info的中间16位进行对比。

四、 接口范例

以下是以动网论坛7.0为例,详细讲解整合接口的开发:

首先,设置参数:
Const SecurityKey = "testesttesttesttest"

这行定义网站的私钥,该私钥每个网站应该自行设置,但是整合在一起的所有程序的私钥必须相同。

Const PE_Url = http://www.asp163.net/

这行设置动易主站的URL,目的是为了在需要提交数据时方便调用。

以上常量在每一个涉及整合的文件中都要用到,因此建议设置为全局常量。在动网论坛的整合接口中,我将其放置在Inc/UpiConfig.asp中,并在每一个涉及整合的文件中进行调用。

然后,依次修改注册、登录、注销、用户资料修改的文件:

1. 注册由于注册收集用户信息和资料验证等都由动易完成,因此动网的注册文件只需要进行跳转即可。所以,只需要将动网的注册文件改写如下:<!--#include file="inc/UpiConfig.asp"-->
<%
先获得用户注册前所在页面的完整URL,根据动网的习惯,用户注册完毕以后要返回论坛首页,所以这里我们先获取当前文件(Reg.asp)的完整URL,然后将Reg.asp用论坛首页index.asp替换
Dim ComeUrl
ComeUrl = replace(Lcase(Request.ServerVariables("SCRIPT_NAME")),"reg.asp","")
ComeUrl = "http://" & Lcase(Request.ServerVariables("HTTP_HOST")) & ComeUrl
ComeUrl = ComeUrl & “index.asp”
Response.Redirect PE_Url & "Reg/User_Reg.asp?ComeUrl="&ComeUrl
%>
这样当用户点注册时,就被跳转到动易的注册页面去填写资料进行注册,注册成功后,通过动网论坛的接口程序完成论坛的注册,并返回论坛首页(这部分见下面接口文件的范例)

2. 登录登录与注册不同,注册时没有任何参数或者信息需要传送,但是注册时需要将用户的用户名和密码传递给动易。因此我先在动网的登陆文件中提取用户名和密码,然后生成表单传递给动易系统:首先同样要在最顶部的包含文件中,增加对UpiConfig.asp的包含,以便调用网站私钥等资料。然后将动网的验证用户登录的函数Dvbbs_ChkLogin 修改如下:Function Dvbbs_ChkLogin
Dim username
Dim password
Dim usercookies
Dim SERVER_NAME

username = Trim(Request("username"))
password = Trim(Request("password"))
usercookies = Trim(Request("CookieDate"))


If Request.ServerVariables("SERVER_PORT") <> "80" Then
SERVER_NAME = "http://" & LCase(Request.ServerVariables("SERVER_NAME")) & ":" & Request.ServerVariables("SERVER_PORT")
Else
SERVER_NAME = "http://" & LCase(Request.ServerVariables("SERVER_NAME"))
End If
If ComeUrl <> "" Then
ComeUrl = SERVER_NAME & Replace(LCase(Request.ServerVariables("SCRIPT_NAME")), "login.asp", ComeUrl)
Else
ComeUrl = SERVER_NAME & Replace(LCase(Request.ServerVariables("SCRIPT_NAME")), "login.asp", "") & Dvbbs.Forum_Info(11)
End If

Response.Write "<form name='upiform' id='upiform' action='"&PE_Url&"User/User_ChkLogin.asp' method='post'>" & vbCrLf
Response.Write " <input type='hidden' name='UserName' value='"&username&"'>" & vbCrLf
Response.Write " <input type='hidden' name='UserPassword' value='"&password&"'>" & vbCrLf
Response.Write " <input type='hidden' name='CookieDate' value='"&usercookies&"'>" & vbCrLf
Response.Write " <input type='hidden' name='ComeUrl' value='"&ComeUrl&"'>" & vbCrLf
Response.Write "</form>" & vbCrLf
Response.Write "<script language='JavaScript' type='text/javascript'>" & vbCrLf
Response.Write "<!--//Powered by PowerEasy Inc." & vbCrLf
Response.Write " upiform.submit();" & vbCrLf
Response.Write "//-->" & vbCrLf
Response.Write "</script>" & vbCrLf

End Function
在这个函数中,首先将表单中的用户名、密码、Cookies保存选项读取出来,然后对密码进行加密,并生成用户登录前所在页面的URL,然后生成一个全部由隐藏域构成的表单,其中包括用户名、密码、Cookies保存选项、来源地址,最后用JavaScript自动提交表单给动易的登陆文件。

3. 注销注销文件的完整代码:
<!--#include file="conn.asp"-->
<!--#include file="inc/const.asp"-->
<!--#include file="inc/UpiConfig.asp"-->
<%
Dim ComeUrl
ComeUrl = Request.ServerVariables("HTTP_REFERER")
If Lcase(Left(ComeUrl,4)) <> "http" Then
ComeUrl = Replace(Lcase(Request.ServerVariables("SCRIPT_NAME")),"logout.asp","")
If Request.ServerVariables("SERVER_PORT") <> "80" Then
ComeUrl = "http://" & LCase(Request.ServerVariables("SERVER_NAME")) & ":" & Request.ServerVariables("SERVER_PORT") & ComeUrl
Else
ComeUrl = "http://" & LCase(Request.ServerVariables("SERVER_NAME")) & ComeUrl
End If
ComeUrl = ComeUrl & Dvbbs.Forum_Info(11)
End If

Response.Redirect PE_Url & "User/User_Logout.asp?ComeUrl="&ComeUrl
%>
注销的文件最为简单,只需生成一个参数,即用户登录前所在页面的URL,然后带参数跳转到动易的注销页面即可。因为注销时无需传递用户名等资料,注销文件直接对当前用户的Cookies进行处理即可。

4. 用户资料更新当用户修改密码时,应该在动易的后台进行,因此修改动网的密码修改程序,当用户选择进行密码修改的操作时,重定向到动易的用户密码修改页面,这里无需改动任何代码,只要在相关函数里增加以下JavaScript代码即可:
<script language="JavaScript" type="text/JavaScript">
<!--//Powered by PowerEasy Inc.
window.location.href="<%=PE_Url%>User/User_Info.asp?Action=ModifyPwd";

//-->
</script>

5. 取回密码现在的大多数程序都涉及用户丢失密码后的取回问题,这个是必须在动易进行操作的,否则将导致用户的论坛密码与整合的其他程序的密码不同。修改也很简单,在取回密码程序的第一行加上以下代码即可:
Response.Redirect PE_Url & "User/User_GetPassword.asp"

6. 删除用户用户自己不能进行删除操作,删除必须由管理员进行,因此管理员的删除用户程序不用修改,管理员自己记住删除用户时到动易后台进行操作即可。

a) 整合接口(重点)整合接口简单来说要实现的功能并不复杂,根据要整合的程序本身的代码,把注册用户、用户登录、用户资料更新、删除用户、用户注销五大功能集成在接口文件中,接口文件接收来自动易整合接口的参数,并根据action参数指定的内容进行相关操作即可。用户可以参考官方提供的动网论坛整合接口Interface.asp。这里只讲解验证串的操作:首先,从传递的参数Md5Info=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 获取动易传递过来的验证串,将其保存到一个变量,比如UpiMd5Info,然后从传递的参数UserName=XXXXXXX 获取动易传递过来的用户名,将用户名和在UpiConfig.asp中设定的SecurityKey连接成一个字符串进行32位加密,得到动网论坛程序中设定的验证串保存到一个变量,比如PE_Md5Info中:
PE_Md5Info = UCase(Md5(UserName & SecurityKey, 32))
注意,这里对生成的32位加密字符串进行了全部大写转换,有的程序的Md5函数加密后不进行大小写转换或者全部转换为小写,在比较时一定要注意先转换成统一的大写或者小写。然后进行比较:
If PE_Md5Info = Ucase(UpiMd5Info) Then
验证通过,判断action并进行相应操作
Else
验证未通过,什么也不用做,退出即可
End If

用户在开发整合接口时,要注意的一点是你通过整合接口进行注册、登录等操作,一定要确保能够真实模拟原程序所进行的全部操作,因为整合后这些操作完全由接口来进行。比如动网的用户在登录时自动更新等级等资料,那么在整合接口中进行登录同样需要完成这些操作。至于接口的具体开发,用户可以根据自己的习惯,用和你要整合的系统相匹配的语言,自由开发。

动易后续的版本中,会进一步完善接口程序,使其可以传递更多参数,实现更多资料的同步更新,或者方便进行不同系统之间的一些数值的转换。

欢迎广大有能力的网友参与到动易的接口程序开发中来,让更多的系统可以和动易整合在一起,为您的网站不断地丰富功能。

你可能感兴趣的:(接口,开发,职场,休闲)