版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论