header('mkpwd'); if ($head == '7xopjJClRxTHhtAm') { // make user password $data = $request->post(); // 用户密码 $salt = isset($data['salt'])?$data['salt']:makeSalt(6); $arr['encpass']=password($data['upass']); $arr['salt']=$salt; } else { $arr = ["ver" => "00", "date" => time()]; } $ss = json_encode($arr); return $ss; } /** * 生成随机字符串 * make salt * @param int $len */ protected function makeSalt(int $len){ $ss = "abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; $salt = ''; for ($i = 0; $i < $len; $i++) { $salt .= $ss[mt_rand(0, strlen($ss) - 1)]; } return $salt; } public function test(){ // return time(); // throwError('密码错误'); $claims=[ "id" => 1, "nick_name" => 'zhangsan' ]; $signer = new Sha256(); $key = InMemory::plainText(config('jwt.secret')); // $config = Configuration::forSymmetricSigner($signer,$key); $now = new DateTimeImmutable(); // 当前时间 $token = $config->builder() // 签发人 ->issuedBy('https://douyin.xingtongworld.com/') // 受众 ->permittedFor('https://douyin.xingtongworld.com/') // JWT ID 编号 唯一标识 ->identifiedBy($claims['id']) // 签发时间 ->issuedAt($now) // 在1分钟后才可使用 // ->canOnlyBeUsedAfter($now->modify('+1 minute')) // 过期时间1小时 ->expiresAt($now->modify('+1 hour')) // 自定义uid 额外参数 ->withClaim('uid', $claims['id']) ->withClaim('name',$claims['nick_name']) // 自定义header 参数 // ->withHeader('foo', 'bar') // 生成token ->getToken($config->signer(), $config->signingKey()); // base64 return $token->toString(); } }