| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <?php/** * Created by PhpStorm. * User: nodelog * Date: 2020/6/20 * Time: 16:38 */namespace api\common\behaviors;use common\enums\CodeEnum;use common\enums\StatusEnum;use common\modules\user\models\User;use yii\filters\auth\AuthMethod;use yii\web\HttpException;class StoreQueryParamAuth extends AuthMethod{    public $tokenParam = 'token';    /**     * @param \yii\web\User $user     * @param \yii\web\Request $request     * @param \yii\web\Response $response     * @return User|\yii\web\IdentityInterface|null     * @throws HttpException     * @author nodelog     */    public function authenticate($user, $request, $response)    {        $accessToken = $request->get($this->tokenParam);        if (is_string($accessToken)) {            /* @var User $identity */            $identity = $user->loginByAccessToken($accessToken, get_class($this));            //商家验证            $store = $identity->store;            if (empty($store) || $store->status == StatusEnum::STATUS_OFF) {                $this->handleFailure($response);            }            if ($identity !== null) {                return $identity;            }        }        if ($accessToken !== null) {            $this->handleFailure($response);        }        return null;    }    /**     * @param $response     * @throws HttpException     * @author nodelog     */    public function handleFailure($response)    {        throw new HttpException(CodeEnum::CODE_FORBIDDEN, '您没有权限,请联系管理员');    }}
 |