隱藏你的 ID 吧!

qbhy發表於2018-10-16

hidden your id. 隱藏你的ID.

使用場景

當我們的應用需要提供一個無狀態透過ID獲取資訊的介面,例如 GET /user/{id} ,此類介面只要遞增ID進行請求,就可以得到我們資料庫中所有公開資訊,這很顯然不是我們想看到的。
hyid 可以幫助你隱藏我們不希望使用者看到的ID欄位,或者其他數字欄位。

安裝

composer require 96qbhy/hyid

laravel or lumen

  1. 註冊服務提供者 : Qbhy\Hyid\ServiceProvider::class
  2. 釋出配置檔案(lumen可以自行復制 config/hyid.php 或者安裝 vendor:publish 命令): php artisan vendor:publish --provider=Qbhy\Hyid\ServiceProvider

使用

class User extends Model{
    use Qbhy\Hyid\HyidAble;

    // or 
    public function getUserId($userId){
        return hyid($userId);
    }

    // or
    public function toArray(){
        $data = parent::toArray();

        $data['id'] = hyid()->encode($data['id'])

        return $data;
    }
}
// decode
    public function userinfo($id){
        return User::query()->findOrFail(hyid()->decode($id))->toArray();
    }
// 非 laravel or lumen 下,可以自行例項化 Hyid 類
$secret = 'qbhy';
$offset = 1996;
$randomLength = 6;
$hyid = new Hyid($secret,$offset,$randomLength);

$encodedId = $hyid->encode(1);
$id = $hyid->decode($encodedId);

96qbhy@gmail.com
qbhy/hyid

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章