登录鉴权
1、前端常见登录鉴权方法
- session-cookie
- cookie
-
http是无状态协议,服务器需要一个标识来识别不同的浏览器,也就是cookie作用,用来做浏览器的识别
-
浏览器在第一次向服务发送请求时,服务器会在response头部设置set-cookie,浏览器接收到这个cookie后会将它存在本地,在下一次请求该服务器时,request头部会自动带上cookie,以此识别不同的浏览器
- 常见使用例子
http.creatServer((req,res)=>{ res.setHeader("Set-Cookie", "*****") res.end("***") })
-
session
-
在浏览器第一次访问时,由服务器创建一次会话,会话中保存访问浏览器的信息,与cookie不同的是一个存在浏览器,一个存在服务器
-
- token令牌(JWT)
-
浏览器在第一次访问服务器时,服务器会生成一个令牌回传给浏览器,之后浏览器每次访问该服务器时会携带这个令牌,已验证信息是否有效或者是否过期
-
令牌一般由用户信息、时间戳及其他被hash加密过的签名构成
- 一般流程:
-
浏览器携带用户名以及密码发出请求服务器验证用户名及密码
-
服务器验证用户名及密码
-
验证成功后,服务器生成token返回给浏览器
- 浏览器将token令牌存储在本地,可以是cookie也可以存储在storage中
- 在之后请求时携带token进行访问,服务器在接受后对token进行验证,包括正确性以及是否过期,一般是在Authorization中,如果验证失败返回401
-
-
- Oauth(第三方授权)
-
第三方登录鉴权主要基于oauth2.0,不会使第三方触及到用户的账户信息,是一种第三方登录的授权机制
-
- token与session-cookie的区别
-
token更加安全,服务器不会保存
-
session-cookie在不是https的网站中易受到攻击
-
token是由服务端签发,session-cookie限制于浏览器,app无法使用
-
2、前端权限控制
- 路由权限控制
- 视图元素权限控制
- 请求权限控制