padcmoi/bundle-api-slim

用于在 SLIM 上创建 API 的实用类包

0.7.0 2022-03-15 22:37 UTC

This package is auto-updated.

Last update: 2024-09-19 21:44:29 UTC


README

用于在 SLIM 上创建 API 的实用类包

➡️安装

composer require padcmoi/bundle-api-slim

➡️主要功能

  • ✔️ 数据库 PDO(SQL)
  • ✔️ DotEnv
  • ✔️ SanitizeData
  • ✔️ JWT 认证
  • ✔️ CSRF
  • ✔️ 验证码
  • ✔️ 其他
  • ✔️ ...

➡️使用方法

示例

use Padcmoi\BundleApiSlim\Database;
use Padcmoi\BundleApiSlim\Misc;
use Padcmoi\BundleApiSlim\SanitizeData;
use Padcmoi\BundleApiSlim\Token\JwtToken;

// database
$lastInsertId = Database::insert(
    "INSERT INTO `__tokens` SET
        `payload` = md5(:payload),
        `header` = 'jwt',
        `uid` = :uid,
        `not_before_renew` = DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL :nbf SECOND),
        `expire_at` = DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL :exp SECOND)",
    array(':payload' => $serializedToken, ':uid' => $uid, ':nbf' => $nbf, ':exp' => $expire)
);
// ...

// auth token
$jwt_token = JwtToken::create();
$uid = JwtToken::getUid($jwt_token);
var_dump(JwtToken::check($jwt_token));


SanitizeData::without(['ab', 'baa', 'aa']);
SanitizeData::clean(true, []);

Misc::snakeCase('aze ert uUu . tt.oo__aa//jjj;içp');


// Use only JWT
use Padcmoi\BundleApiSlim\Token\SimplyJWT;

SimplyJWT::init('***PRIVATE_KEY***', 'HS256', 3600); // KEY, Algorithm, Expire Timestamp

$serializedToken = SimplyJWT::encode([
    "exp" => time() + 3600,
    "iat" => time(),
    "uid" => -1, // Id account
]);

$payload = SimplyJWT::decode($serializedToken); 

➡️其他

🧳Packagist

https://packagist.org.cn/packages/padcmoi/bundle-api-slim

🔖许可

此作品受 MIT 许可。

🔥在 discord 上联系我

discord 链接 discord.gg/257rUb9

🍺如果您想请我喝啤酒

通过 Paypal 捐赠给我 😍 点击这里