美文网首页
JWT在PHP中的简单使用示例

JWT在PHP中的简单使用示例

作者: WuGuofeng | 来源:发表于2018-06-01 15:14 被阅读0次
官网 https://jwt.io/
3.0版本 https://github.com/lcobucci/jwt

安装

composer require lcobucci/jwt

依赖

  • PHP 5.5+ (v3.2) and PHP 7.1 (v4.x)
  • OpenSSL Extension

示例

获取token

<?php

use \Lcobucci\JWT\Builder;
use \Lcobucci\JWT\Signer\Hmac\Sha256;

include "../vendor/autoload.php";

$builder = new Builder();
$signer  = new Sha256();

$secret = "suspn@)!*";

//设置header和payload,以下的字段都可以自定义
$builder->setIssuer("suspn.com") //发布者
        ->setAudience("suspn.com") //接收者
        ->setId("abc", true) //对当前token设置的标识
        ->setIssuedAt(time()) //token创建时间
        ->setExpiration(time() + 60) //过期时间
        ->setNotBefore(time() + 5) //当前时间在这个时间前,token不能使用
        ->set('uid', 30061); //自定义数据

//设置签名
$builder->sign($signer, $secret);
//获取加密后的token,转为字符串
$token = (string)$builder->getToken();
var_dump($token);

验证token

<?php

use \Lcobucci\JWT\Parser;
use \Lcobucci\JWT\Signer\Hmac\Sha256;

include "../vendor/autoload.php";

$signer  = new Sha256();

$secret = "suspn@)!*";

//获取token
$token = isset($_SERVER['HTTP_AUTHORIZATION']) ? $_SERVER['HTTP_AUTHORIZATION'] : '';

if (!$token) {
    invalidToken('Invalid token');
}

try {
    //解析token
    $parse = (new Parser())->parse($token);
    //验证token合法性
    if (!$parse->verify($signer, $secret)) {
        invalidToken('Invalid token');
    }

    //验证是否已经过期
    if ($parse->isExpired()) {
        invalidToken('Already expired');
    }

    //获取数据
    var_dump($parse->getClaims());

} catch (Exception $e) {
    //var_dump($e->getMessage());
    invalidToken('Invalid token');
}

function invalidToken($msg) {
    header('HTTP/1.1 403 forbidden');
    exit($msg);
}

相关文章

  • PHP使用JWT示例

    PHP使用JWT示例

  • JWT在PHP中的简单使用示例

    官网 https://jwt.io/ 3.0版本 https://github.com/lcobucci/jwt ...

  • php jwt使用

    安装 使用composer管理依赖项并下载PHP-JWT: 示例 1 输出 示例 2 输出 php openss...

  • php 依赖注入的理解

    PHP 依赖注入容器实现 w3c-PHP7中Closure :: call使用示例 php手册-Closure::...

  • Auth0 Java JWT

    本文介绍 Auth0 Java JWT 的使用方法。 目录 Auth0 Java JWT 简介 代码示例 Auth...

  • php 使用jwt

    JWT是什么 JWT是json web token缩写。它将用户信息加密到token里,服务器不保存任何用户信息。...

  • java和golang使用rsa jwt

    在此示例中,使用了Spring Boot和Go gin架构,实现了java项目生成jwt token,go项目验证...

  • 如何用php发送一个post请求并带数据

    可以使用 PHP 内置的 curl 库来发送 POST 请求,并附带数据。以下是一个示例: 在此示例中,我们使用 ...

  • JWT简单使用

    一、什么是JWT Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSO...

  • jwt简单使用

    maven进入包 ...

网友评论

      本文标题:JWT在PHP中的简单使用示例

      本文链接:https://www.haomeiwen.com/subject/qohksftx.html