所有分类
  • 所有分类
  • 后端开发
Cookie+Session VS JWT:身份认证大PK

Cookie+Session VS JWT:身份认证大PK

在现代的Web应用中,用户身份认证是一个非常重要且常见的功能。用户身份认证可以确保只有经过授权的用户才能访问敏感信息或执行特定的操作。Vue作为一款流行的前端开发框架,提供了众多解决方案来处理用户身份认证的问题。在传统的Web开发中,我们通

Cookie+Session VS JWT:身份认证大PK

传统基于Cookie和Session的身份认证

搞定网站开发,你最需要的就是用户ID这位保安大哥,他可是非常关键滴!咱们平时登录时都喜欢用Cookie+Session这套组合保护自己的账号安全。一旦登录成功,服务器就会送一个Session给咱,还会把这个Session ID藏在Cookie里头。下次再去这个站点玩儿,Cookie就会带着这个Session ID去找服务器验证密码,如果对上号儿那咱们就可以进去。而且,Vue还能帮忙,跟咱们后端服务器搭把手来验证Session ID,确认它是真实的才肯放行哦~这种方式简单实用,很合适那些小型或要求不太高的网站。

看cookie和session这东西就感觉晕乎乎的,像跨页操作经常出问题这种事儿,还有搞清楚什么叫CORS都挺麻烦的;再说,往服务器端存 Session 数据还可能拖累性能,真是费劲儿。特别是要做大型项目或安全要求很高的时候,咱们还是得找更稳妥的验证方法!

基于JWT的身份认证

你儿听过“口令卡”?那个就是我们常用的鸡肋JWT!这个玩意儿简直像我们的网上身份证,每逛个网站就得拿出来供人家确认一下,不然可没法进去。而且这个步骤还挺牛逼的,安全性杠杠地!那要怎么用这个JWT在Vue里?放心,只要安装个叫jsonwebtoken的小软件,分分钟就能学会生成和查验JWT了。无论你是前端还是后端,认证这种破事都不烦你操心了!

// 登录操作,验证用户名和密码,服务器返回Session ID
login(username, password) {
  return axios.post('/login', { username, password })
    .then(response => {
      // 将Session ID存储在Cookie中,使用vue-cookie插件
      this.$cookie.set('sessionId', response.data.sessionId)
    })
}
// 发送请求时,将Cookie中的Session ID附加在请求头中
axios.interceptors.request.use(config => {
  const sessionId = this.$cookie.get('sessionId')
  if (sessionId) {
    config.headers['Authorization'] = sessionId
  }
  return config
})

有没有听说过那个新的JWT验证方法呀?超级棒!不用再麻烦服务器一个个检查用户密码了,更轻松快捷地处理问题,有时在分布式系统中也很好用。而且,你还可以设定Tokens的有效期限,以及确认一些特殊的权限!简单来说,这个方法就是为现在人们对网络应用的需求设计的,要保证安全性、流畅性和灵活性都达到最高要求才行!

使用第三方身份认证服务

给你支招,去Google啊Facebook啊或者GitHub这类第三方网站上找找!只要你我都愿意遵循OAuth协议,就能用他们存储的身份信息轻松登入。还有Vue这框架挺好使,能防止他人偷偷盗取我们的资料!

没错,用第三方验证登陆好直接!不用费心又安全稳定。不过也别忘了看看他们的隐私政策,保证自己的信息不外泄~

// 登录操作,验证用户名和密码,服务器返回JWT
login(username, password) {
  return axios.post('/login', { username, password })
    .then(response => {
      // 存储JWT到浏览器的本地存储中
      localStorage.setItem('jwt', response.data.jwt)
    })
}
// 发送请求时,将JWT附加在请求头中
axios.interceptors.request.use(config => {
  const jwt = localStorage.getItem('jwt')
  if (jwt) {
    config.headers['Authorization'] = `Bearer ${jwt}`
  }
  return config
})

安全性与用户体验并重

建 Vue app 的账号验证很关键,但重点是要保护账号安全,特别是得保证密码这种重要信息不被坏人窃取。记得把敏感数据加密传出去,不让黑客趁虚而入。除了这些,设定好会话超时和自动刷新令牌也会让使用起来更安心!

要是在搞Vue开发过程中遇到用户验证这类麻烦事儿,直接找个省力顺手的验证办法就行!当然了,别忘记给系统添上保护罩,确保稳健运行。不过,每个人的具体情况都不一样,要选最适合你的那款认证方案可得从业务需求、安全防护和用户体验这三个角度出发好好想想~

// 使用第三方身份认证服务登录
loginWithOAuth(provider) {
  return axios.get(`/auth/${provider}`)
    .then(response => {
      // 存储用户身份信息到本地存储中
      localStorage.setItem('user', JSON.stringify(response.data.user))
    })
}
// 登出操作,删除用户身份信息
logout() {
  localStorage.removeItem('user')
} 

原文链接:https://www.icz.com/technicalinformation/web/javascript/2024/04/13900.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?