# switch-token **Repository Path**: china_uni/switch-token ## Basic Information - **Project Name**: switch-token - **Description**: API token认证 api接口访问令牌,支持对等密码学验证、非对等签名、验签,以及注册反刷新token令牌功能; - **Primary Language**: Go - **License**: MulanPSL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-03-28 - **Last Updated**: 2022-06-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` token 生成与验证(hmac256和椭圆曲线两种token签名方式,token直接在client端验证有效性) 客户端使用用户名\密码\机构ID 去server端获取token: client server uname/pwd/orgid ----------------------------------->去用户中心判断机构id下的用户uname和pwd 是否正确,正确下生成token hmac对等秘钥加密{uname,orgid,time,seqnum} = token or ecdsa私钥加密{uname,orgid,time,seqnum} = token <----------------------------------------------------token (call GenerateToken) 校验: hmac对等秘钥校验(token,uname,orgid) (call VerifyToken) OR ecdsa公钥校验(token,uname,orgid) (call VerifyToken) 或者调用ParseToken 获取uname,orgid 内部比较 测试: ./switch-token &{JWT-HS256 86400 {ABC$1&2oiew3975*4j6k80} {false configs/ec256-private.pem configs/ec256-public.pem}} 默认配置过期时间: 86400 token 申请时间: 2021-03-28 17:41:29.442294807 +0800 CST m=+0.001077567 token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmFtZSI6InRvbSIsIm9yZ2NvZGUiOiJvcmcxMjMiLCJjdXN0b21rdiI6eyJrMSI6InYxIn0sImF1ZCI6ImRpcmVjdG9yeS1jaGFpbiIsImV4cCI6MTYxNjkyNDQ5MSwianRpIjoiMTYxNjkyNDQ4OTQ0MjM4NTA4MyIsImlhdCI6MTYxNjkyNDQ4OSwiaXNzIjoiUkFDIiwic3ViIjoiY2xpZW50In0.2dH6nnpqM6Xr_z1JalgXD3DTMKECFTyiawk_tP3cpmE 过期秒数: 1616924491 过期本地时间: 2021-03-28 17:41:31 +0800 CST 过期UTC时间: 2021-03-28 09:41:31 +0000 UTC token验证通过,未过期 ```