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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。