前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JWT的简单入门了解

JWT的简单入门了解

作者头像
陌无崖
发布2019-08-30 16:33:00
4190
发布2019-08-30 16:33:00
举报

不忘初心,砥砺前行

作者 | 陌无崖

转载请联系授权

导语

在前面的文章中我们了解到的都是关于web请求,但是实际上,在发送web请求的时候,我们需要对我们的客户端进行授权访问,来保证对方是来自可信的客户端,因此在后端中会有Auth授权,让我们简单了解一下如何授权的吧。

流程分析

用户请求登录 服务器进行验证 验证通过进行授权,返回令牌 用户携带令牌访问其他页面,直接验证通过。

JWT数据

jwt总共由三个部分进行组成,分别是Header(头部)、Payload(负载)、Signature(签名),其中Header是一个JSON对象,用来描述JWT的元数据

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload同样是一个json对象,用来存放需要传送的数据

iss (issuer):签发人
exp (expiration time):过期时间
sub (subject):主题
aud (audience):受众
nbf (Not Before):生效时间
iat (Issued At):签发时间
jti (JWT ID):编号

还有一个最重要的就是我们的签名了。为了防止数据被修改,首先我们需要指定一个密钥,这个密钥只有服务器知道,并不对外做任何泄露。然后用指定的算法去生成签名,然后把 Header、Payload、Signature 三个部分拼成一个字符串,每个部分之间用"点"(.)分隔,就可以返回给用户。

使用方法

我们可以将返回的签名放在cookie中,又或者放在redis中进行保存。但是由于放在Cookie中不能进行跨域,因此一般发送HTTP请求,保存在头信息Authorization字段里面。并加上Bearer标注:

fetch('api/user/1', {
  headers: {
    'Authorization': 'Bearer ' + token
  }
})

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 golang技术杂文 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导语
  • 流程分析
  • JWT数据
  • 使用方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档