前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见的认证机制--让服务器端认识自己

常见的认证机制--让服务器端认识自己

作者头像
名字是乱打的
发布2022-05-13 10:28:48
1.1K0
发布2022-05-13 10:28:48
举报
文章被收录于专栏:软件工程

1 HTTP Basic

HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和 password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供 用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被 使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth

2 Cookie

Cookie认证机制就是为一次请求认证服务端创建一个Session对象同时在客户端 的浏览器端创建了一个Cookie对象

通过客户端带上来Cookie对象与服务器端的 session对象匹配实现状态管理的

默认的,当我们关闭浏览器的时候,cookie会被删除。但可以通过修改cookie 的expire time使cookie在一定时间内有效

3 OAuth

OAuth(开放授权)是一个开放的授权标准,允许用户 让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而

将用户名和密码提供给第三方应用。

OAuth允许用户提供一个

,而不是

来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的第三方系统(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容 下面是OAuth2.0的流程:

这种基于OAuth的认证机制适用于个人消费者类的互联网产品,如社交类APP等应用,但是不太适合拥有自有认证权限管理的企业应用。

4 Token(令牌) Auth

大概的流程是 这样的:

  1. 客户端使用用户名跟密码请求登录
  2. 服务端收到请求,去验证用户名与密码
  3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
  4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里
  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向 客户端返回请求的数据

Token Auth的优点

Token机制相对于Cookie机制又有什么好处呢?

  • 支持跨域访问:Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输.
  • 无状态(也称:服务端可扩展行):Token机制在服务端不需要存储session信息,因为Token自身包含了所有登录用户的信息,只需要在客户端的cookie或本地介质存储状态信息.
  • 更适用CDN:可以通过内容分发网络请求你服务端的所有资料(如:javascript, HTML,图片等),而你的服务端只要提供API即可.
  • 去耦:不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在你的API被调用的时候,你可以进行Token生成调用即可.
  • 更适用于移动应用:当你的客户端是一个原生平台(iOS,Android,Windows8等)时,Cookie是不被支持的(你需要通过Cookie容器进行处理),这时采用Token认 证机制就会简单得多。
  • CSRF:因为不再依赖于Cookie,所以你就不需要考虑对CSRF(跨站请求伪造)的防范。
  • 性能:一次网络往返时间(通过数据库查询session信息)总比做一次HMACSHA256 计算的Token验证和解析要费时得多.
  • 不需要为登录页面做特殊处理:如果你使用Protractor做功能测试的时候,不再需要 为登录页面做特殊处理.
  • 基于标准化:你的API可以采用标准化的JSONWebToken(JWT).这个标准已经存在多个后端库(.NET,Ruby,Java,Python,PHP)和多家公司的支持(如: Firebase,Google,Microsoft).

基于JWT的Token认证机制实现

https://cloud.tencent.com/developer/article/2002230

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 HTTP Basic
  • 2 Cookie
  • 3 OAuth
  • 4 Token(令牌) Auth
  • Token Auth的优点
    • Token机制相对于Cookie机制又有什么好处呢?
      • 基于JWT的Token认证机制实现
      相关产品与服务
      访问管理
      访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档