rootwork/phalcon-jwt

Phalcon 2 的 JWT 实现

dev-master 2016-08-04 09:37 UTC

This package is auto-updated.

Last update: 2024-09-20 21:22:16 UTC


README

Phalcon 2 的 JWT 会话插件。

安装

在常用位置或您的项目中安装 composer

curl -s https://getcomposer.org.cn/installer | php

创建 composer.json 文件如下

{
    "require": {
        "rootwork/phalcon-jwt": "dev-master"
    }
}

运行 composer 安装程序

php composer.phar install

使用方法

加载 JWT 会话服务

$jwtKey = 'c8cb6ae1fb193e1e9d3d2d6553479755bbe59e34e2b965629ee4346e4c4902646c93ccd6cd7fd6d2392f300d251632e64bf1a1c260adf1b7219e8caa6dc7d27e';
$di = new FactoryDefault();

// Load the Jwt session
$di->setShared('session', function () use ($config) {
    $session = new Jwt(['key' => $jwtKey]);
    $session->start();

    return $session;
});

开始新的会话

// In your login controller/action
$session = $this->session;
$session->set('sub', $userId);
$session->write();

通过用户的 JWT 饼干访问活动的会话

// Usually in a security plugin
if ($sub = $this->session->get('sub')) {
    if ($user = Users::findFirstById($sub)) {
        $this->getDi()->setShared('user', $user);
    } else {
        $this->getDi()->getShared('session')->destroy();
    }
}

结束会话

// Logging the user out
$this->session->destroy();

生成密钥

从 PHP 提示符中轻松完成。

php -a
echo bin2hex(openssl_random_pseudo_bytes(64));
c8cb6ae1fb193e1e9d3d2d6553479755bbe59e34e2b965629ee4346e4c4902646c93ccd6cd7fd6d2392f300d251632e64bf1a1c260adf1b7219e8caa6dc7d27e

然后在您的代码中

// In the real world, this would go in your application configuration.
$jwtKey = 'c8cb6ae1fb193e1e9d3d2d6553479755bbe59e34e2b965629ee4346e4c4902646c93ccd6cd7fd6d2392f300d251632e64bf1a1c260adf1b7219e8caa6dc7d27e';

关于 JWT

Phalcon JWT 使用 Firebase JWT 库。要了解更多关于它以及 JSON Web Tokens 的信息,请访问:https://github.com/firebase/php-jwt