Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
594 views
in Technique[技术] by (71.8m points)

使用Vue.js开发的前后端分离的项目如何做用户身份认证?

是像传统项目一样用session,还是将用户名密码发送到一个登录接口之后返回一个access_token,然后将这个access_token和用户uid的关系存入数据库或者缓存,每次请求的时候通过客户端携带的这个access_token来进行身份验证?

能不能分析分析两种方法的优劣?

我个人的看法是:前者开发起来会比较简单,直接取session即可。后者这种方式可以实现原生APP和网页公用一套后端接口。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

首先,先说结论,安全程度基本上都是一样的,cookie或者token被劫持了一样能伪造请求,所以需要结合实际场景判断那种方式更优

其次,要看你使用场景,是外包项目的话怎么简单怎么来,如果是自己练习或者公司项目,则要做对自己有挑战的,或者大家公认对公司项目高可用,易扩展

最后,其实原理都差不多,都是要携带必要的信息作为权限认证

使用session相当于在浏览器中存了cookie,每次发请求的时候检查cookie就行,负载均衡上面在入口分发请求的设备上面做鉴权就可以了,如果单台服务器就更简单了

token更偏向于客户端的用法,不同的是需要你把token换成uid,而session则是大部分编程语言自己来处理的

最后说说我司的做法,我司APP使用的是token,因为APP是编译的生成,对token的加密方法保护得很好

如果是网页则是先登录授权服务器,换取一个token,然后再带着这个token登录各个不同的服务项目,由各个服务自己使用该token想授权服务器验证,如果通过验证,在给各个服务独有的session或者token


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...