当前位置: 首页 > news >正文

利用网上菜谱做网站管理咨询公司如何开发客户

利用网上菜谱做网站,管理咨询公司如何开发客户,搜索引擎推广文案,html5网页设计实训总结云原生学习路线导航页(持续更新中) 本文是 通用开发技能系列 文章,主要对编程通用技能 Authentication、OAuth、JWT 认证策略 进行学习 1.Basic Authentication认证 每个请求都需要将 用户名密码 进行base64编码后,放在请求头的A…

云原生学习路线导航页(持续更新中)

本文是 通用开发技能系列 文章,主要对编程通用技能 Authentication、OAuth、JWT 认证策略 进行学习

1.Basic Authentication认证

  • 每个请求都需要将 用户名+密码 进行base64编码后,放在请求头的Authorization中,携带到服务端,实现HTTP基本认证
  • HTTP明码传输,不安全。一般会用HTTPS传输
  • HTTPS 在 HTTP 基础上面添加了 SSL 安全证书。但如果有人伪造CA证书,也可能造成不安全,用户名和密码直接放在请求里,太不安全了

2.OAuth认证

  • OAuth(Open Authorization)是一个用于授权的开放网络标准,允许用户授权第三方应用去访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。

  • 目前主流的 第三方应用登陆,都是使用OAuth标准做的

  • OAuth标准目前大多使用2.0版本

  • OAuth2.0授权模式(授权码模式和密码模式比较常用)

    • 授权码模式(authorization code)
    • 简化模式(implicit)
    • 密码模式(resource owner password credentials)
    • 客户端模式(client credentials)
      在这里插入图片描述
  • 更多知识学习博客

    • OAuth2.0协议流程与授权模式、协议流程
    • http基本认证Authentication OAuth JWT

3.JWT认证

3.1.JWT是什么

  • JSON Web Token (JWT) 是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。
  • 本质上来说,jwt 就是规定了一种token的格式,按照 jwt 标准生成的 token,包含3部分:header、playload、signature,每一部分都有自己的功能,因此这种token自身就携带了多种特性。

3.2.JWT的3个组成部分

  • JWT包含3部分:
    • header
      • 头部,公开的,表示这是jwt的数据。这部分会使用base64url编码,会把编码成base64后的数据中的 “+、=、/” 替换掉,这样就可以把jwt生成的token拼接在 请求的url 参数上,用于浏览器禁止cookie时使用
    • playload
      • 有效载荷,可以携带一些数据,但是不要放私密数据。这部分都是base64编码,可以解密,相当于明文
    • signature
      • 验证签名,是用来验证发送者的JWT,同时也能确保客户端传来的JWT没有被篡改
      • signature 如何鉴别客户端带过来的Token是正确的?
        • signature 是 服务端在生成token时,使用 密钥secret,对header+playload进行加密,得到的验证签名。
        • 如果 下一次请求带来的token,拿着header+playload再次进行密钥加密,得到的signature不同,说明 数据被别人篡改了。如果加密后值相等,说明没有篡改。
  • 因此,JWT标准生成的Token,实际上并不是安全的,内部都使用base64编码,也相当于明文,但是有 signature 判断数据是否被修改过

3.3.JWT的优缺点

  • JWT优点:
    • json的通用性,所以JWT是可以进行跨语言支持的。很多语言都可以使用 json 传输
    • 有了payload部分,所以JWT可以在自身存储一些其他业务逻辑所必要的非敏感信息。
    • 便于传输,jwt的构成非常简单,字节占用很小
    • 不需要在服务端保存会话信息, 所以它易于应用的扩展,不用考虑服务器之间的同步问题
  • JWT缺点:
    • 不应该在jwt的payload部分存放敏感信息,因为该部分是客户端可解密的部分。
    • 一定得保护好服务端的secret私钥,该私钥非常重要。

3.4.使用 JWT + Redis 验证用户信息的过程

  • 在用户登陆成功时,服务端使用 JWT 的密钥,为该用户生成一个token。把userId存入载荷中,将token返回给前端。同时,我们会在redis中维护一个Hash表,键为token值,值为user的从数据库中查到的详细信息。
  • 下次用户再访问其他资源的时候,将token以 cookie请求头的Authorization字段url参数 的 方式一起发给服务端。
  • 服务端中,我们会在网关Gateway验证用户的登录状态。
    • 从request中取出token,使用 jwt 密钥尝试解密,如果发现 token 的 header+playload 再次加密后得到的 signature 与 token 中的 signature不再一样,说明数据被篡改了,就会拒绝服务
    • 如果验证通过,就会从载荷中取出我们事先放入的userId,将userId存到请求中,再把该请求放行。
    • 后续如果需要使用用户的详细信息,直接从请求头中获取userId,就可以到redis中查到详细信息。
http://www.yayakq.cn/news/281233/

相关文章:

  • 百度推广和网站建设涿州市建设局网站
  • 数据库设计对网站开发的影响公司变更告知函怎么写
  • 手机网站优化怎么做广州软件开发培训机构有哪些
  • 济南网站开发公司北京网站优化厂家
  • 网站建设管理视频中国机械加工网网址
  • 做汽车网站开题报告的意义直播网站开发需要多少钱
  • 网站建设需要考哪些证网站开发知识点总结
  • 建网站公司要钱吗国家电子商务平台
  • 淳安县千岛湖建设集团网站中国优秀设计网站有哪些
  • 西宁网站运营公司五莲建设监理有限公司网站
  • 做网站80端口郴州58网站
  • 网站搭建完手机访问微信表情开放平台
  • 广州免费建站推荐网站建设调查表
  • 青岛网站建设模板下载公司建设网站需要什么条件
  • dw8 php做购物网站教程网站seo优化包括哪些方面
  • 网站建设捌金手指花总六做网站网站的推广是不是犯罪的
  • 做炒作的网站在线视频链接生成器
  • 化妆品网站开发海南百度推广开户费用
  • 头条站长平台青岛市建设工程
  • 东莞高端网站建设费网站建设包括哪些
  • 网站开发华企云商做海外贸易的网站名叫什么
  • 陕西省建设银行网站6怎么做会员自动售卡网站
  • 九江市建设规划局旧网站淄博网站建设补贴
  • 可以建网站的路由器湖北网络科技有限公司
  • ui设计案例网站wordpress多站点模式
  • 芷江建设工程招投标网站域名解析入口
  • 做教育机构的设计哪些网站好建设网站的注意事项
  • 永康住房城乡建设局网站网页设计与网站建设ppt
  • 微商官网青岛seo外包服务
  • 北京网站开发网络公司北京logo设计制作