對稱加密
對稱加密可以用來把登入使用者的 id 和 name 等少數資訊http_build_query成一個字串加密後放入 cookie 中。
public function encryptString($content, $key)
{
return openssl_encrypt($content, 'AES-128-ECB', $key);
}
public function decryptString($content, $key)
{
return openssl_decrypt($content, 'AES-128-ECB', $key);
}
呼叫
//待加密字串
$queryString = 'id=1&name=John+Doe&age=22&city=%E5%8D%8E%E7%9B%9B%E9%A1%BF';
//加密
$encStr = openssl_encrypt($queryString, 'AES-128-ECB', 'key123');
echo $encStr . PHP_EOL;
//解密
$deStr = openssl_decrypt($encStr, 'AES-128-ECB', 'key123');
echo $deStr . PHP_EOL;
http_build_query & parse_str
http_build_query 將該陣列或物件轉換成一個經過 URL 編碼的查詢字串。
parse_str 將查詢字串轉換成陣列或物件。
$data = array(
'name' => 'John Doe',
'age' => 22,
'city' => 'New York'
);
//將陣列轉換為url的查詢部分
$queryString = http_build_query($data);
echo $queryString . PHP_EOL;
//將 ur拼接字串 轉換成陣列
parse_str($queryString, $res);
print_r($res);
執行後返回
Cookie物件
// 在 cookie 中設定 access_token 值
Cookie::set('access_token', $accessToken, Config::get('app.default_logout_time'));
// 從 cookie 中獲取accessToken
$accessToken = Cookie::get('access_token');
DB 鏈式呼叫
Db 物件鏈式呼叫查詢資料。
$list = Db::name('table1')
->alias("a")
->field("a.*,c.col2")
->where($where)
->join("table2 c", "a.col1 = c.id", "left")
->order(["create_time" => "desc"])
->paginate($param["limit"], false, [$param["page"]]);