如何三个web项目共用一个登陆界面?也就是用一个地址!

李嘉图 发布于 2015/06/04 19:10
阅读 2K+
收藏 0

华为云11月刊推送:DIY微信问答机器人,高性能计算代码的20个技巧!>>>

我现在做一个web网站,有三个端,分别是root-根用户,administrator-管理员端,teacher-教师端.分别对应着三个项目,要用一个地址登陆(或域名).

这样做,1:一个地址登陆,对用户友好.

        2:对应三个项目,将来可以分开部署,部署到局域网里面不同的机器上.目前是都是在一个机器上.

        3:三种用户id都是数字,只是长度不同,也利用同意登陆.

效果如下:例如我用地址http://127.0.0.1出现的登陆页登陆后,

root登陆,就到了http://127.0.0.1/root

administrator登陆,就到了http://127.0.0.1/administrator

teacher登陆,就到了http://127.0.0.1/teacher,

但是问题是root,administrator,teacher是三个项目,甚至http://127.0.0.1(先称之为login)本身也有可能是一个项目.

我才疏学浅,遇见这样的需求,实在不知道该怎么办?应该可以做到吧,路过的好心人帮忙看看?

加载中
-1
l
latina

1. 登录页面应该是放在主项目中,在登录后判断用户类型并返回到某个页面中

2. 在返回的页面中不输出任何内容,直接通过JS的window.location跳转到真正的页面,注意要把登录ID一些其他项目需要用到的初始化参数传递过去

李嘉图
李嘉图
回复 @茶壶 : 大哥,不好意思,其实应该给你的,希望你能释怀.
如比如比
如比如比
你这有作弊嫌,和我的答案有什么区别?
0
倚地屠蛇
倚地屠蛇
登录后判断 根据不同的账号类型跳转到不同的路径呗。
0
开源中国首席院长
开源中国首席院长
根据用户登录的id 进行路径的分发,到对应的界面
0
maradona
maradona

如果三个系统用户都能访问其他系统,那就做成单点登录(百度下cas单点登录之类的开源系统)

如果三个系统用户只能访问自己的系统,楼上说的很对,但也得根据你实际项目情况来定

0
dthwj
dthwj

登录之后存redis信息,其他项目判断redis信息

0
如比如比
如比如比
认证成功后返回,在浏览器的onload时,向接续对象用户webapp,admwebapp,rootwebapp再提交,把这个response作结果画面显示就行了。必要时包含开始的认证信息,javascript,ajax,jqurey等都能实现。
0
Backflow
Backflow
如果不需要共享登陆信息, 三个页面做成一样不就得了!!!
0
lieefu
lieefu
<form onsubmit="return check();" ...>

<script>
   function check(){
     var idstr=document.getElementById('#idinput').value;
     if(idtr.length==root长度){
        document.forms[0].action="/root";
     } else if(idtr.length==administrator长度){
        document.forms[0].action="/administrator";
     } else{
         document.forms[0].action= "/teacher";
    }
    return true;
}
</script>

示例代码,不能真正运行。如果用jQuery,更容易实现。

李嘉图
李嘉图
其实大部分如此,就是还是却一点细节吧.
0
返回顶部
顶部