Step1帐户登录系统(0.整体思路)


我一直想做一个帐户登录系统,到今天,终于做出了一个雏形,非常高兴,因此,我会在下面的几篇文章对这个系统进行详细的介绍,这是第一篇,介绍一下整体思路,到后面,基本上就是以代码为主了,先看个截图:

  这个系统起源于单点登录系统(实际上它本身也是一个单点登录系统),这个技术现在在互联网上使用的十分广泛了,毕竟,无论是大的还是小的网站,是否有多个域名,都可太可能为每个栏目来设计一个单独的登录系统,等不可能让用户在每个栏目都去输入帐号密码,下面我粗略的图解一下单点登录系统(这篇文章之中提到的登录都应该兼容跨域名之间的接口的,如果在同一个域名内,将会容易得多)

  以上这个图只是一个登录流程的顺序图,按照这个图,我们一步一步看一下:

  1.用户要求进行某一操作;

  2.Web栏目通过自身的Cookie或Session判断用户是否已经登录,如果已经登录,则直接处理,否则,将用户导向到登录系统,并附带上参数通知登录系统在登录完成之后返回到哪一个页面;

  3.登录系统通过Cookie或Session判断用户是否已经登录,如果已经登录,则直接将用户跳转回栏目,并附带用户的帐户信息,如果没有登录,则提示用户登录;

  4.用户输入帐户密码;

  5.登录系统记录判断用户登录是否正常,然后先设置自己的Cookie或Session,再使用用户的帐户信息跳转到对应的栏目;

6.栏目收到跳转回来的请求之后,先验证请求,然后设置自己的Cookie,再根据用户的帐户信息向用户返回内容。

  本来这些文字描述都可以直接直观的画在图上的,不过我的发现机器上没有工具,连Word都没有,只好随便用画图画了一幅,不过因为大家对单点登录应该都很了解,因此,肯定会跳过不看,也就无所谓了。

  我并不是要做一个单点登录系统,我主要是想,现在的网站,无论大小,都有一个注册、登录什么的,对用户造成很大的困扰,用户不可能去记那么多帐号密码的,对网站来讲,维护用户的数据也是一个很难的问题,因此,如果网站能够相互公用用户信息,让用户的一个密码在多个网站都可以登录,这是一个皆大欢喜的事情。这个思路,实际上就是传说中的OpenId,我之所以没有去专门研究OpenId,是因为现在国内知道的人很少,而且OpenId还是有一定的局限性,我仔细的研究了各个大的网站提供的对外接口(国内的很少,基本都是国外的),决定写一个基于多种网站用户来源的单点登录系统,这就是刚才看到的Step1帐户登录系统.

  其实,总体原理非常简单(因为上面的那幅图画起来很费劲,这里就不想再画图了),只要想象上图之中的Passport服务器同时又是另外一个或多个其他Passport服务器的客户端,就会觉得一切都容易起来:这个Passport服务器先作为Google,Live,Yahoo等网站的帐户服务的客户端,将这个服务都整合在一起,然后作为一个统一的Passport提供给自身的一个或多个网站的栏目。

  例如,参照如下流程:

  1.用户打开http://www.dituren.cn/ ,并点击右上角的“登录”;

  2.页面会转向到http://account.step1.cn/account/login.aspx ,开始进行登录,也就是文章开头看到的那张图片
3.在页面上显示了多种帐户来源类型,用户选择自己有帐号的一种(以Google为例);

  4.帐户服务器会将用户转向到Google的登录页面(此接口由Google Accounts Authentication 提供);

  5.Google会首先让用户输入帐号密码,然后出现一个页面提示用户第三方网站正在请求帐户信息,请用户确认;

  6.用户确认后,则Google会返回到一个页面,这个页面URL是在第4步的时候随参数发送给Google的;

  7.在这个页面上接收Google传递的参数,写入到Cookie,然后将用户再次转向到最终栏目页面;

  8.栏目写入Cookie,整个登录过程完成。

  这个过程所起来比单点登录难不了多少,不过最大的问题在于这些网站提供的帐户服务互不相同,而且文档并不是很健全,目前研究这个服务的人又不多(国内更加少了),因此开发的时候不停的遇到很多很郁闷的问题(至今我都没有使用Google的OAuth成功登录,后来只好用AuthSub),因为不停的遇到一些小问题而且没有代码参考,心情十分郁闷,在最郁闷的时候,我决定将这所有的代码都整个公开提供下载,以减少还有别的同样对这个感兴趣的人研究的时候走的弯路。

  我会首先顺序次在博客上贴出每一个网站的帐户接口的详细使用和代码,等到这个服务完善之后,就将整个源码提供下载。

  预览地址是http://account.step1.cn/account/login.aspx ,目前就能登录,登录之后什么都不能做,呵呵!

  闭关说明:本来这个文章应该是叫“闭关纪要6”的,不过因为这次研究的东西会自成一个系列,而且本身会专业一点,不适合采用一个太不专业的名称,因此,没有采用,不过,编号还是被保留,因为我最终还是要记录闭关期间的研究成果的



相关阅读:
在设计视图中Access允许的九种数据类型
用Windows Server Backup搞定服务器备份
w3c标准自适应高度height100%不起作用的问题分析
Javascript 检测、添加、移除样式(className)函数代码
推荐网页前端设计:适合JavaScript新手的书籍
VBS教程:属性-DriveLetter 属性
又一个漂亮的导航栏的下拉菜单
Oracle性能调整与优化(三)
6月第二期 开源资讯大串烧
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
Win 2003 DNS服务器配置方法
VS2008与.NET 3.5的JS智能感知和调试
网络之美 JavaScript中Get和Set访问器的实现代码
织梦DedeCms实现调用单页文章内容的方法
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 有幸如此…… 别在品位这棵树上吊死 只是忽然,很想你...... 爱是一种支撑 元旦晚会开场白2015 东北地区村级领导干部工作现状调查报告(上) 笨妈妈和聪明的我350字 读格列佛游记有感150字 做人要廉洁作文400字 学生清明扫墓主持词 他最后抛弃了“女朋友” 县工商局建立诉调对接机制积极化解行政争议 美丽的丰渚园 唯美情感语录精选 今宵咽、西楼淡月 检察院先进集体事迹材料3 一年四季短信传递我的祝福 电力公司两会文娱晚会主持串词礼仪主持 狼和松鼠300字 跨越世纪展望未来 雾裂桥作文800字 进入中学后的感受550字 关于父爱的作文题目 领导干部作风整顿建设活动实施方案-干部作风建设 树组工干部形象之我见 快乐的星期作文50字 幸福角落 一年级关于冬天的作文:我爱北方的冬天 尘世烟花,盈袖清寒 我愿做乌云 中考冲刺的国旗下讲话稿 浅谈择偶标准 当我下次遇见你们 还教育一片天空 工商分局党委开展新一轮思想解放的基本思路 橡皮膏大王读后感400字 吃西瓜100字 一件难忘的童年趣事 记一次快乐的尝试 逆境永不言败励志故事 轨道的遐想 我的心好累的句子,感觉心累的句子 邂逅一朵花开 小学生培优补差工作计划2015 学校校庆家长代表发言稿 2004年组织工作要点(街道) 去龙凤古镇玩作文 厨房里的乐曲 利用PowerPoint制作简单的演示文稿 加工合同范本

Copyright © 2016 phpStudy |