web应用的用户认证模块在前端做可以吗?

2013-08-19 15:42:10 +08:00
 MarkBrown
我在做一个多用户角色的web应用,不同角色进入系统和页面跳转都需要验证用户的权限。我现在用cookie做验证。请问在前端做验证可行吗?有哪位大神有这方面的经验吗?不甚感激!
2784 次点击
所在节点    问与答
14 条回复
lichao
2013-08-19 15:45:31 +08:00
一般来讲是即时从 DB(或者 cache) 中判断权限吧,cookie 怎么做?
MarkBrown
2013-08-19 16:52:25 +08:00
当然是从DB里读取数据,然后存到cookie里。我们遇到的问题是页面跳转时,浏览器会先加载一部分页面,然后读取cookie,判断权限,这样就会出现当页面跳转不成功时(也就是权限不对时)页面加载一半然后跳到登陆页面的情况。难道现在只有后台验证而没有前端验证码?
lichao
2013-08-19 16:54:06 +08:00
@MarkBrown 显然后台验证靠谱啊
MarkBrown
2013-08-19 16:57:40 +08:00
感觉是这样,目前主流都是用后台做。只是想探究一下用前端做的可行性。如果能在前端做验证的话,可以减轻服务器的压力。
MarkBrown
2013-08-19 16:58:18 +08:00
我想做一个重前端,轻后台的应用。
lichao
2013-08-19 16:58:55 +08:00
@MarkBrown 你就没觉得前端验证不可靠吗?
kchum
2013-08-19 16:59:22 +08:00
后台验证的,服务器处理没那么弱!
binux
2013-08-19 16:59:43 +08:00
如果后端没有访问需要授权的数据,你认证他干嘛?
如果访问了,那肯定要和后端通行,那你认证一下不就完了?!
Perry
2013-08-19 17:05:01 +08:00
关键是前端怎么验证,如果是auth+ajax的话没问题
MarkBrown
2013-08-19 17:07:31 +08:00
我是在用户登录时把授权的信息保存在cookie里了。页面跳转时只要读取cookie里的授权信息。只有登录时才通过后台认证。
MarkBrown
2013-08-19 17:08:58 +08:00
@Perry 请问具体怎么做?
Perry
2013-08-19 17:18:51 +08:00
举个例子
var auth = "xxxxxxxxxxxxxxxxxxx";
然后ajax的时候带着这个auth作为data提交。在后台认证auth的存在就行。
不知道这个是不是你的意思
wdd2007
2013-08-19 17:24:36 +08:00
@MarkBrown

在页面头部判断 cookie ,验证失败就跳转,加上 exit() 终止后边的执行,应该不会出现加载一半的情况啊。
MarkBrown
2013-08-19 17:39:04 +08:00
@wdd2007 说的办法很好呀,我咋就没想到呢。主要是我用了require.js来加载JS文件,判断用户是否登录的模块是用angularjs的模块来写的,加载的比较晚,所以就会出现空白页面的情况。 另外,就如@Perry 所说,在前端保存anth验证码,每次ajax的时候都提交一下auth来验证一下,这个问题也就解决了。
不过,auth存在哪里呢?加个密存到cookie里可行吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/79522

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX