版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
API身份验本节核心内API身份验本节核心内API身份验证的常用机制介绍如何进行API身份验证API身份验API请求进录之后产⽣⼀个有⼀定有效期的token,并将其存储于浏览器的Cookie或LocalStorage之中,之后的请求都携带该token,请求到达服务器端后,服务器端用该token对请求进行鉴权。在第⼀次登录之后,服务器会将这个token用⽂件、数据库或缓存服务器等本小节的代码是基于demo08JSONWebToken(JWT,音JSONWebToken(JWT,音同jot,详⻅JWTRFC7519JWTJWT里的token是指JSONWebToken(JWT)。端会签发⼀个Token返回给客户端客户端收到请求后会将TokenCookie中或者本地存储中,之后每次请求都会携带该服务端收到请求后会验证请求中携带的Token端会签发⼀个Token返回给客户端客户端收到请求后会将TokenCookie中或者本地存储中,之后每次请求都会携带该服务端收到请求后会验证请求中携带的Token,验证通过则进在JWT中,Token有三部分组成,中间用隔开,并使用如下是JWT中的⼀个TokenheaderJWTToken的headerToken的类Token{"typ":"alg":}该例说明Token类型是JWT,加密算法是HS256(alg算法可以有Payload该例说明Token类型是JWT,加密算法是HS256(alg算法可以有PayloadPayloadToken的具体内容,里面有⼀些标准的字段,当然你iss:JWTToken的签发sub:主exp:JWTToken过期时间audJWTToken的⼀方iat:JWTToken签发时间nbf:JWTToken⽣效时间jti:JWTTokenID本例中的payload Signature是Token用Base64对header.payload进行编用Secret{"id":"username":"kong","nbf":1527931805,"iat":}Secretconf/config.yaml配置⽂件中最后⽣成的TokenSecretconf/config.yaml配置⽂件中最后⽣成的TokeneToke,服务端收到Token后会解析出d,然后用d加密后的Token和收到的TkenP1d如何进行APIAPI详细的JWT介绍参考JWT–基于Token的身份验证 签发API添加认证签发API添加认证在handler/user/login.go(详中添加login如果不是,返回errno.ErrPasswordIncorrect错误token.Sign(token并返API添加认证auth.Compare()的实现详token.Sign()的实现详//apiforauthenticationfunctionalitiesg.POST("/login",user.Login)在router/router.go中对userhandlermiddleware在router/router.go中对userhandlermiddleware/v1/user路径的请求,都会经过middleware.AuthMiddleware()中间件的处理:token校验。middleware.AuthMiddleware()函数是通过调用token.ParseRequest()来进行token校验的。 下载apiserver_demos源码包(如前面已经下载过,请忽略$gitclonemiddleware.AuthMiddleware()实现详token.ParseRequest()实现详2.apiserver_demos/demo09复制3.2.apiserver_demos/demo09复制3.apiserver目录下编译源token,之后请求时在HTTPHeader中带上token即可1.$curl-XPOST-H"Content-Type:application/json":8080/login-{"code":0,"message":"OK","data":{}}$cd$gofmt-w$gotoolvet$gobuild-v$cp-a返回的token为返回的token为 请求时如果不携带签发的token3.请求时携带$curl-XPOST-H"Authorization:Bearer9v43NzWBN7HXsSLfebw92DKd1JQ"-H"Content-Type:application/json":8080/v1/user-{"code":0,"message":"OK","data":{"username":}}$curl-XPOST-H"Content-Type:application/json":8080/v1/user-{"code":"message":"Thetokenwasinvalid.","data":null}可以看到携带token后验证通过,成功创建用户。通过可以看到携带token后验证通过,成功创建用户。通过HTTPHeaderAuthorizationBearer$tokentoken。携带token后不需要再次查询数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 32987-2026混凝土路面砖性能试验方法
- 2026文科综评面试题及答案
- 2026物流服务面试题及答案
- 2026销售农产品面试题及答案
- 统编版语文九年级上册第一单元第6课《我看》教学设计+分层课堂训练
- 陶瓷(瓷砖)购销合同
- 2026年地热能开发合作协议合同(开发商与投资方)二篇
- 培训课件:海外充电桩市场分析
- 商务管理公司采购员述职报告
- 血液透析专科知识考试题库与答案
- 2027届高三启航学生动员大会上校长讲话:把极限刻在 2027 的坐标上
- 2026年湖北省综合评标评审专家库专家考试在线题库及答案
- 设备购买意向性合同
- 正确刷牙方法指导
- 铁路信号工考试题库(附答案)
- 博睿测控 B系列智能型电动执行器安装使用手册D21A-211213
- 2025年青海省格尔木市检察官、法官入员额考试真题(附答案)
- 物流公司总经理责任制度
- 拉沙热培训课件
- 地下管线智能化监测施工方案
- 注塑模具浇口设计
评论
0/150
提交评论