src/Biz/Distributor/Util/DistributorCookieToolkit.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Biz\Distributor\Util;
use Symfony\Component\HttpFoundation\Cookie;
use AppBundle\Common\TimeMachine;
class DistributorCookieToolkit
{
/** 注意,新增一种类型时, 需要修改 getTypes()方法, 往getTypes()内新增一项类型 */
const USER = 'user';
const PRODUCT_ORDER = 'productOrder';
public static function setTokenToCookie($response, $token, $cookieType, $liveTime = 604800)
{
if ($liveTime) {
$cookie = new Cookie(self::getCookieName($cookieType), $token, TimeMachine::time() + $liveTime);
} else {
$cookie = new Cookie(self::getCookieName($cookieType), $token);
}
$response->headers->setCookie($cookie);
return $response;
}
public static function setCookieTokenToFields($request, $fields, $cookieType)
{
$fields['distributorToken'] = self::getCookieToken($request, $cookieType);
return $fields;
}
public static function getCookieToken($request, $cookieType, $defaultValue = '')
{
$distributorTokenCookie = $request->cookies->get(self::getCookieName($cookieType));
if (!empty($distributorTokenCookie)) {
return $distributorTokenCookie;
}
return $defaultValue;
}
/**
* @params $config
* array(
* 'clearedType' => DistributorCookieToolkit::User,
* // 有 USER 和 PRODUCT_ORDER 2种类型,默认全清
*
* 'checkedType' => DistributorCookieToolkit::User,
* // 有 USER 和 PRODUCT_ORDER 2种类型,单选,当cookie中有相应的值,才会触发清除操作
* )
*/
public static function clearCookieToken($request, $response, $config)
{
if (!empty($config['checkedType'])) {
$checkedCookieName = self::getCookieName($config['checkedType']);
$checkedCookie = $request->cookies->get($checkedCookieName);
if (!empty($checkedCookie)) {
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。