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

网站建设多少钱vis手册制作详细内容

网站建设多少钱,vis手册制作详细内容,wordpress 3.6,如何建立网上销售平台什么是JWTJWT(json web token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息#xff0c;以便于从资源服务器获取资源。比如用在用户登录上。JWT定义了一种用于简洁#xff0c;自包…什么是JWTJWT(json web token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息以便于从资源服务器获取资源。比如用在用户登录上。JWT定义了一种用于简洁自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法。JWT 可以使用 HMAC 算法或者是 RSA 的公钥密钥对进行签名。JWT有两个特点自包含(Self-contained)负载中包含了所有用户所需要的信息避免了多次查询数据库简洁(Compact)可以通过URL, POST 参数或者在 HTTP header 发送因为数据量小传输速度快JWT组成JWT由headerpayloadsignature三个部分下面我们用官网的实例先来讲解一个这三个部分的用法。header部分jwt的头部承载两部分信息声明类型这里是jwt声明加密的算法 通常直接使用 HMAC SHA256完整的头部就像下面这样的JSON{alg: HS256,typ: JWT }对应base64UrlEncode编码为eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9说明该字段为json格式。alg字段指定了生成signature的算法默认值为HS256typ默认值为JWTpayload部分载荷就是存放有效信息的地方。标准中注册的声明 (建议但不强制使用) iss: jwt签发者sub: jwt所面向的用户aud: 接收jwt的一方exp: jwt的过期时间这个过期时间必须要大于签发时间nbf: 定义在什么时间之前该jwt都是不可用的iat: jwt的签发时间jti: jwt的唯一身份标识主要用来作为一次性token,从而回避重放攻击。{sub: 1234567890,name: John Doe,iat: 1516239022 }对应base64UrlEncode编码为eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ说明该字段为json格式表明用户身份的数据可以自己自定义字段很灵活。sub 面向的用户name 姓名 ,iat 签发时间。例如可自定义示例如下{iss: admin, //该JWT的签发者iat: 1535967430, //签发时间exp: 1535974630, //过期时间nbf: 1535967430, //该时间之前不接收处理该Tokensub: www.admin.com, //面向的用户jti: 9f10e796726e332cec401c569969e13e //该Token唯一标识 }signature部分jwt的第三部分是一个签证信息这个签证信息由三部分组成header (base64后的)payload (base64后的)secretHMACSHA256(base64UrlEncode(header) . base64UrlEncode(payload),123456 )对应的签名为keH6T3x1z7mmhKL1T3r9sQdAxxdzB6siemGMr_6ZOwU最终得到的JWT的json为(header.payload.signature)eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.keH6T3x1z7mmhKL1T3r9sQdAxxdzB6siemGMr_6ZOwU说明对header和payload进行base64UrlEncode编码后进行拼接。通过key这里是123456进行HS256算法签名。JWT的使用流程初次登录用户初次登录输入用户名密码密码验证服务器从数据库取出用户名和密码进行验证生成JWT服务器端验证通过根据从数据库返回的信息以及预设规则生成JWT返还JWT服务器的HTTP RESPONSE中将JWT返还带JWT的请求以后客户端发起请求HTTP REQUESTHEADER中的Authorizatio字段都要有值为JWT服务器验证JWTPHP如何实现JWT这里使用的是PHP 7.0.31我们新建一个文件jwtAuth.php完整类代码如下?php /*** PHP实现jwt*/ class JwtAuth {//头部private static $headerarray(algHS256, //生成signature的算法typJWT //类型);//使用HMAC生成信息摘要时所使用的密钥private static $keyroot123456;/*** 获取jwt token* param array $payload jwt载荷 格式如下非必须* [* issjwt_admin, //该JWT的签发者* iattime(), //签发时间* exptime()7200, //过期时间* nbftime()60, //该时间之前不接收处理该Token* subwww.mano100.cn, //面向的用户* jtimd5(uniqid(JWT).time()) //该Token唯一标识* ]* return bool|string*/public static function getToken(array $payload){if(is_array($payload)){$base64headerself::base64UrlEncode(json_encode(self::$header,JSON_UNESCAPED_UNICODE));$base64payloadself::base64UrlEncode(json_encode($payload,JSON_UNESCAPED_UNICODE));$token$base64header...$base64payload...self::signature($base64header...$base64payload,self::$key,self::$header[alg]);return $token;}else{return false;}}/*** 验证token是否有效,默认验证exp,nbf,iat时间* param string $Token 需要验证的token* return bool|string*/public static function verifyToken(string $Token){$tokens explode(., $Token);if (count($tokens) ! 3)return false;list($base64header, $base64payload, $sign) $tokens;//获取jwt算法$base64decodeheader json_decode(self::base64UrlDecode($base64header), JSON_OBJECT_AS_ARRAY);if (empty($base64decodeheader[alg]))return false;//签名验证if (self::signature($base64header . . . $base64payload, self::$key, $base64decodeheader[alg]) ! $sign)return false;$payload json_decode(self::base64UrlDecode($base64payload), JSON_OBJECT_AS_ARRAY);//签发时间大于当前服务器时间验证失败if (isset($payload[iat]) $payload[iat] time())return false;//过期时间小宇当前服务器时间验证失败if (isset($payload[exp]) $payload[exp] time())return false;//该nbf时间之前不接收处理该Tokenif (isset($payload[nbf]) $payload[nbf] time())return false;return $payload;}/*** base64UrlEncode https://jwt.io/ 中base64UrlEncode编码实现* param string $input 需要编码的字符串* return string*/private static function base64UrlEncode(string $input){return str_replace(, , strtr(base64_encode($input), /, -_));}/*** base64UrlEncode https://jwt.io/ 中base64UrlEncode解码实现* param string $input 需要解码的字符串* return bool|string*/private static function base64UrlDecode(string $input){$remainder strlen($input) % 4;if ($remainder) {$addlen 4 - $remainder;$input . str_repeat(, $addlen);}return base64_decode(strtr($input, -_, /));}/*** HMACSHA256签名 https://jwt.io/ 中HMACSHA256签名实现* param string $input 为base64UrlEncode(header)...base64UrlEncode(payload)* param string $key* param string $alg 算法方式* return mixed*/private static function signature(string $input, string $key, string $alg HS256){$alg_configarray(HS256sha256);return self::base64UrlEncode(hash_hmac($alg_config[$alg], $input, $key,true));} }这里测试一下//测试和官网是否匹配begin$payloadarray(sub1234567890,nameJohn Doe,iat1516239022);$jwtnew Jwt;$token$jwt-getToken($payload);echo pre;echo $token;//对token进行验证签名$getPayload$jwt-verifyToken($token);echo brbr;var_dump($getPayload);echo brbr;//测试和官网是否匹配end//自己使用测试begin$payload_testarray(issadmin,iattime(),exptime()7200,nbftime(),subwww.admin.com,jtimd5(uniqid(JWT).time()));;$token_testJwt::getToken($payload_test);echo pre;echo $token_test;//对token进行验证签名$getPayload_testJwt::verifyToken($token_test);echo brbr;var_dump($getPayload_test);echo brbr;//自己使用时候end以上内容希望帮助到大家很多PHPer在进阶的时候总会遇到一些问题和瓶颈业务代码写多了没有方向感不知道该从那里入手去提升对此我整理了一些资料包括但不限于分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6laravelYII2RedisSwoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家需要PHP进阶架构师视频、面试文档免费获取​docs.qq.com或者关注咱们下面的专栏PHP架构师之路​zhuanlan.zhihu.com来源https://zhuanlan.zhihu.com/p/93910087
http://www.zqtcl.cn/news/413526/

相关文章:

  • 做电脑图标的网站上海定制网站建设公司哪家好
  • 重庆seo网站推广工具济南网页设计师招聘信息
  • 甘肃永靖建设住建局网站深圳网络广告推广公司
  • 台州企业网站搭建电话厦门学网站建设
  • 做易经网站做网站布为网
  • 高端定制开发网站可以做网站的网络
  • 局政务网站建设管理工作总结wordpress ks主题
  • 网站集约化建设的意义网页制作成app
  • 建设银行大厂支行网站专业的营销型网站建设公司
  • 询盘网站苏州建设银行招聘网站
  • 制作网站图片手机网站跳转
  • 装修公司营销网站模板东莞家居网站建设
  • 网站模板建站教程视频德州极速网站建设百家号
  • 专做蔬菜水果的网站自学it从哪里学起
  • 邵阳红网站搭建平台聚合力
  • 滁州网站建设信息推荐软件开发技术方案模板
  • 商务网站建设有哪几个步骤拼多多网页qq登录
  • 厦门商城网站开发宜昌小程序开发公司
  • 东莞沙田网站建设榆林网站建设价格
  • 无锡网站制作建设wordpress写文章模板
  • 企业网站销售提升学历要多少钱
  • 打开建设银行官方网站首页wordpress 站库分离
  • 电子商务网站建设的试卷设计之家app
  • 抚养网站建设黔东南小程序开发公司
  • 网站建设相关行业有哪些wordpress 内容管理系统
  • 网站 备案地温州网站优化排名推广
  • 做网站的工作量国内 wordpress
  • 定制网站开发是什么大业推广网站
  • 网站建设每年需要交多少钱天津制作网站公司
  • 网站平台都有哪些wordpress 主题制作 视频