LoginCookieBehavior.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace common\behaviors;
  3. use backend\models\MemberIdentity;
  4. use common\helpers\Utils;
  5. use yii\base\Behavior;
  6. use yii\web\User;
  7. use yii\web\UserEvent;
  8. class LoginCookieBehavior extends Behavior
  9. {
  10. /**
  11. * @return array
  12. */
  13. public function events()
  14. {
  15. return [
  16. User::EVENT_AFTER_LOGIN => 'afterLogin',
  17. ];
  18. }
  19. /**
  20. * @param UserEvent $event
  21. */
  22. public function afterLogin($event)
  23. {
  24. /** @var MemberIdentity $identity */
  25. $identity = $event->identity;
  26. if ($identity == null) {
  27. return;
  28. }
  29. if ($identity->type == MemberIdentity::MEMBER_TYPE_USER) {
  30. setcookie(MemberIdentity::USER_LOGIN_ID_COOKIE, null, null, '/', Utils::getTopDomain());
  31. setcookie(MemberIdentity::USER_LOGIN_TOKEN_COOKIE, null, null, '/', Utils::getTopDomain());
  32. } elseif ($identity->type == MemberIdentity::MEMBER_TYPE_IB) {
  33. setcookie(MemberIdentity::IB_LOGIN_ID_COOKIE, null, null, '/', Utils::getTopDomain());
  34. setcookie(MemberIdentity::IB_LOGIN_TOKEN_COOKIE, null, null, '/', Utils::getTopDomain());
  35. } else {
  36. return;
  37. }
  38. }
  39. }