如何自己开个网站平台,网站开发商务合同,wordpress中文房产主题,广州网站改版设计公司不论在任何系统中#xff0c;用户体系都是重中之重#xff0c;而怎么建立一个完善的#xff0c;安全的用户体系#xff0c;是所有开发者都在思考的问题。
而这里就来思考一下#xff0c;用户登录问题。
登录的作用主要就是用户认证#xff0c;与权限认证#xff0c;也…不论在任何系统中用户体系都是重中之重而怎么建立一个完善的安全的用户体系是所有开发者都在思考的问题。
而这里就来思考一下用户登录问题。
登录的作用主要就是用户认证与权限认证也就是常说的认证与授权首先我们要明白认证与授权是两个东西并不是一回事。
所谓的认证解决的是你是谁而授权解决的是你能做什么也就是权限。
http协议是一种无状态协议所以才需要用户登录只有这样后端服务才知道当前是谁在操作又操作了什么东西。就拿买东西来说用户不登录系统怎么知道是谁在买东西买的东西应该谁付钱然后东西又该发给谁。
用户体系中认证与授权是无法避免的两个东西而认证是通过注册与登录实现的。
拿学校来举例所谓的注册就是开学第一天你去学校报名告诉学校的工作人员你是谁你的电话身份证家庭住址等。对应到系统中就是你输入手机号或身份证号又或者是用户名和密码然后创建一个用户的过程。
而登录就是你入学之后你出校之后再回来要进学校的大门这时你就要学校给你的大门钥匙(就是用户名和密码)这样你才能打开门进入学校。
但是呢你进门的时候每次都可以用钥匙开门但对软件系统来说用户每访问一个页面或调用一次接口都要重新输入一下用户名和密码这对用户来说是不可接受的。
所以服务器端就会维护一个标识来标志你的存在这个标识就是session服务器端会给你一个字符串也就是sessionId这样你下次在进来的时候只需要告诉服务器你的sessionId就行了。这样就不用每次都输入用户名和密码。
所以在http这种无状态协议下用户注册登录就是为了维护一个唯一的标识来证明你的存在。
学校维护了你的信息(你的姓名电话身份证等)然后给你一个学号你每次离开学校再回来的时候只需要告诉保安你的学号保安然后查看一下是否有这个学号就可以决定是否放你进校门。
但是呢出于安全考虑你的学号是有时间限制的等过了这个时间就要重新给你分配一个学号。因为你的学号使用等时间长了之后可能会被别人知道这样别人也可以通过报你的学号进入学校所以就会造成安全问题。解决办法就是每隔一段时间(一次会话)更换一次学号也就是每次登录都会有新的sessionId。
而从浏览器等角度来说这个学号也就是sessionId就保存在cookie中。这也是我们常说的cookie session的认证方式。但cookie session但认证方式有很多问题比如跨域问题安全性问题因为cookie可以被轻易得到。
所以就有了一种新的方式那就是令牌——token认证。
所谓的token令牌就类似于学生的校园卡只要你有这个校园卡那么你就可以进入学校。
其好处就是这个校园卡里可以存放更多的信息还有就是平台无关性。后端服务只需要根据你的信息生成一个唯一的令牌token即可。 虽然现在token认证是目前业界普通的方式但其也不是绝对安全的比如你的校园卡丢了被别人捡到了或者别人按照你的校园卡伪造了一张等。
所以说用户登录安全就是要保证用户端那个能够证明自己身份的东西的安全不论是sessionId还是token令牌。而且token也可以放到cookie中进行认证。
怎么保证token的安全性
比如设置token的过期时间每隔一段时间token就会失效然后生成新的token。又或者使用加密算法对用户信息进行加密增加别人伪造的难度
登录的本质就是拿到一个唯一标识后端能够通过这个唯一标识认出你是谁。
总而言之没有绝对安全的系统也没有绝对安全的用户体系我们只能尽最大的努力来防范安全问题