PHPでのJWTの簡単な使用例

1842 ワード

公式サイトhttps://jwt.io/
バージョン3.0https://github.com/lcobucci/jwt
インストールcomposer require lcobucci/jwt
に頼る
  • PHP 5.5+ (v3.2) and PHP 7.1 (v4.x)
  • OpenSSL Extension


  • tokenの取得
    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の検証
    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);
    }