欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

为什么网站登录窗口要在另一个网址?

程序员文章站 2022-06-17 20:25:29
...
最近做一个博客网站,想借鉴一下其他大网站的经验,想把登录界面放在顶端.

结果发现很多网站都是有登录和注册两个按钮.

点进去又是一个新网站(二级域名不同),来进行登录,我不明白这样做的原因.

难道是用户体验需求?

补充================

之前有个回答说豆瓣就是这样.把登录界面放在首页,我看了一下,觉得并不是这样.


只不过它在登录界面加了一些豆瓣的文字和图片.本质上还是那样.


如豆瓣有:电影,音乐,读书等子网页.点开之后,登录时仍然是重新开一个二级域名.


所以我现在找不到一个符合大家说的采用ajax的网站.还是压根儿没有

由于是小白.只是单纯做作业,做一个简单的前台和后台,并没有考虑太多.= =懂得太少,不会术语请见谅

回复内容:

泻药,,,
===============================
用户体验个屁!!!
用户体验个屁!!!
用户体验个屁!!!
不用动不动就用户体验,用户体验,用户体验,别整这么高大上的用词!
那些个跳转登录都是个屁的用户体验。
无调转,无刷新登录才是最好的登录体验!!!
为嘛? 无非架构设计、性能均衡、分布式、安全、费用、维护等等来考虑的。

一.打开新网页登陆,是因为服务器对登录这一块单独做了https化。
并不是每个域名都需要走https的,https的服务费是很贵的。
走https协议比较消耗资源、带宽、服务器运算能力。
所以一般上了规模的网站,会把涉及到敏感信息的表单提交页面都走https,但域名你可是要知道的,只有一个主域名哟,难道所有http://www.test.com域名都走https?
不的,所以会开一个http://port.test.com域名只用来做敏感信息提交处理。
所以外行眼中看来,是另一个网站了,其实呢,它们都是http://test.com域名下的子域名,并没有差别。
为什么网站登录窗口要在另一个网址?
二、大集团之间进行了个系统整合,但域名却是不一样的。
所以需要一个中间域名做登录再跳转。
这样的例子比如万网,需要跳转至阿里云进行登录,登录后跳回万网。
至于为什么? 因为万网之前并不是阿里的,是被并购的。

三、又要集中处理敏感数据,又都走https的。
比如百度,阿里,腾讯,他们财大气粗,所以可能都走了https。
但你要知道,他们之前都是走http的,历史遗留问题,和架构之初留下的框框并不是说改就改的。
所以他们会有一、二两种情况的结合。

至于你想知道为什么?
请搜索 https 、域名、 子域名、DNS 、掌握了一定的网站开发架构再来看这个!

以上,,,
我发现我很啰嗦,文字整理功力有限啊,摔 真正的原因是工作量大。

功能集成度越高,用户体验就越好,但开发过程中要考虑与处理的状态机就越多。

举个例子,如果A页面为首页,B页面为单独的登录页面,那么A页面上的一个功能模块,最少只需要考虑以下两个状态:

1.如果用户未登录,则显示登录按钮。

2.如果用户已经登录,则显示用户信息。

当你为了提高用户体验,把登录功能直接集成到A页面上,那么问题来了,对于这个功能模块,你还必须考虑:

3.当用户正在输入登录信息时,要做些什么?比如要不要把用户目前输入的信息去做自动完成,并且展开对此搜索到的结果?

4.当用户输完登录信息并点击了登录按钮后,要做些什么?比如显示:正在连接服务器?

5.如果用户登录后,服务器反馈说登录失败,原因是用户不存在,那么要做些什么?比如问问用户是不是输错了,然后对用户输入的名字进行联想或纠错,并且给出结果?

6.如果用户登录后,服务器反馈说登录失败,原因是密码错误,那么要做些什么?比如告诉用户找回密码的几种方式?

7.如果用户登录后,服务器反馈说登录失败,原因是用户已经在另一个地区登录了,那么要做些什么?比如提示用户修改密码?

8.如果用户登录后,服务器反馈说登录失败,原因是系统发生内部未知错误,那么要做些什么?比如把错误详细信息的加密后字符串显示出来,并且告知用户去反馈?

9.如果用户登录后,服务器反馈说登录成功,下一步肯定是要开始加载用户信息,但在这之前要做些什么?比如显示正在加载用户信息?

10.开始加载用户信息,要做些什么?

11.加载用户信息超时,要做些什么?

12.加载用户信息出错,要做些什么?

13.加载用户信息成功,下一步肯定是要显示用户信息,但在这之前要做些什么?

等等....

你会发现,你考虑地越细,用户体验就越好,状态机就越多,工作量就越大。最后:

领导:小王,一个登录页面你已经做了半个月了都还没做完,你究竟在干嘛?

小王:领导好,我昨天已经实现了登录失败时的语音自动播报错误信息,以及给出建议,今天要做的是处理语音的立体度,以及适当增加大厅混响效果。

领导:...... 楼上有几位哥们提到是因为单点登录或者https,我认为这不是页面跳转的原因或者索性说借口,因为单点登录及https通过弹窗依然可以实现登录和注册,这并不冲突
至于发生了页面跳转,只要登录/注册后能回到浏览页面,在用户体验上一般不会有太大影响
只有开放平台的登录(使用oAuth协议)或者登录完成后页面上较多元素需要重新刷新的情况下才非用跳转登录/注册
剩下的情况,可以理解为用户体验不好,至少是网站开发者没有花足够的成本去部署全站登录统一的js控件 不认同用户体验的说法,也不认同 HTTPS 的说法。应该是为了业务分离,更加安全可控。 应该就是上面很多人都说了的单点登录,如果各个功能模块(子站)都是独立开发的,但是希望共享用户数据,就会把用户注册认证也作一个独立的产品来维护然后提供认证和信息接口给其他子站调用。当然,只是单点登录技术上倒确实没必要一定要跳转域名,但如果由我规划,我大概也会做成统一跳转,我能想到的优点有几个

1 减少重复工作量,提高安全性。每个子站点/产品都可以少做几个页面,尤其这些页面还涉及安全,子产品线碰上不靠谱程序员的可能性很高,把注册登录页面都统一做可以减少不可控因素。

2 维护上的好处,万一页面有bug,或者认证接口有修改,各个子产品都不用去考虑更新认证页面的问题,只要通行证系统那边统一修改了就好。

3 可以确保不同渠道注册的用户信息的一致性(若有的子产品压根不需要用到一部分信息,如果由自己做注册页面,这部分“多余”的信息有可能就直接传个默认值过来完事)

4 可以确保用户体验的一致性,注册登录页面完全一样,地址也一样,可以让用户很明确地认识到“这是同个地方,用同一个账号”,不然如果旗下几个子产品风格差异比较大,注册页面自己做风格也差的大,用户很可能压根意识不到其实用同个账号就可以。 很多都没说到点子上,和https有点关系但不是关键,其实这么做就是为了模块化和解耦。
为什么登录要单独页面,因为全站就可以用这么一套前端了啊,多省事,要做在首页一起改个逻辑还得改两遍,还是两个团队的人维护,绝对会是大坑。这是大型应用才需要的东西,自己做不需要考虑。 非专业人士,胡诌八扯一下。可能是为了美观,在不改变原网页内容的情况下,实现登陆? 简单地说以前都是直接刷页面的,后来才有ajax。然而登入属于关键但不重要的业务,谁没事三天两头升级搞ajax内嵌还得维护调试兼容性。

工程的角度上看,简单稳定历史原因

单点sso啥的一点关系都没,在登入的时候会调用sso接口写cookie和记录分布式session,下一个请求在服务端看来就已经是登入状态了。

新页面属于直接跳转到登入应用的功能页面,而弹出窗口则是调用了登入ajax接口。唯一的区别仅仅是交互方式不同,客户端实现不同。

我感觉登入更准确一些。 以前是没有ajax这种东西的 简单就是最好的用户体验。而且不管如何,单独的登陆页面是必须存在的——无论是不是做了弹出的菜单,因为,就是会有特定的场景需要这个页面。
相关标签: ajax