Passport.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 前台管理切换Cookie事件
  7. */
  8. namespace app\common\event;
  9. use app\common\model\SystemMember;
  10. use think\facade\Cookie;
  11. use encrypter\Encrypter;
  12. class Passport{
  13. const cookie_login = 'passport_sapixx'; //Cookie名称
  14. const cookie_login_key = 'passport_sapixx_TMaHtsBJ55bA'; //Cookie名称
  15. const cookie_miniapp = 'miniapp'; //Cookie名称
  16. const cookie_miniappe_key = 'miniapp_sapixx'; //Cookie名称
  17. const cookie_miniapp_times = 86400; //Cookie名称
  18. /**
  19. * ##########################################
  20. * 判断管理员是否登录
  21. * @access public
  22. * @return boolean
  23. */
  24. public static function isLogin(){
  25. return Cookie::has(self::cookie_login) ? true :false;
  26. }
  27. /**
  28. * 获取用户详细信息
  29. * @return boolean/array
  30. */
  31. public static function getUser(){
  32. if(self::isLogin()){
  33. $user = SystemMember::where(['id' => self::getLogin('user_id'),'is_lock' => 0])->find();
  34. if (empty($user)) {
  35. return false;
  36. }
  37. if($user['is_lock'] == 0){
  38. return $user;
  39. }
  40. }
  41. return false;
  42. }
  43. /**
  44. * 获取登录Cookie中保存的数据
  45. * @param string $key数组键名(user_id、username,ucode);
  46. * @return void
  47. */
  48. public static function getLogin(string $key = null){
  49. if(self::isLogin()){
  50. $info = Cookie::get(self::cookie_login);
  51. $login_info = json_decode(Encrypter::cpDecode($info,self::cookie_login_key),true);
  52. return is_null($key) ? $login_info : $login_info[$key];
  53. }
  54. return false;
  55. }
  56. /**
  57. * 设置登录Cookie
  58. * @param array
  59. * @access public
  60. */
  61. public static function setLogin($param){
  62. $data = [
  63. 'user_id' => $param['id'],
  64. 'username' => $param['username'],
  65. 'login_time' => time(),
  66. ];
  67. $key = Encrypter::cpEncode(json_encode($data),self::cookie_login_key);
  68. return Cookie::set(self::cookie_login,$key);
  69. }
  70. /**
  71. * 退出Cookie
  72. * @access public
  73. */
  74. public static function setlogout(){
  75. return Cookie::delete(self::cookie_login);
  76. }
  77. /**
  78. * ##########################################################
  79. * 获取管理应用信息
  80. * @param string $key数组键名(user_id、username,ucode);
  81. * @return void
  82. */
  83. public static function getMiniapp(){
  84. if(Cookie::has(self::cookie_miniapp) ){
  85. $info = Cookie::get(self::cookie_miniapp);
  86. return json_decode(Encrypter::cpDecode($info,self::cookie_miniappe_key),true);
  87. }
  88. return false;
  89. }
  90. /**
  91. * 设置管理应用信息
  92. * @access public
  93. */
  94. public static function setMiniapp($param){
  95. $data = [
  96. 'member_id' => $param['member_id'],
  97. 'miniapp_id' => $param['miniapp_id'],
  98. 'member_miniapp_id' => $param['member_miniapp_id'],
  99. ];
  100. $key = Encrypter::cpEncode(json_encode($data),self::cookie_miniappe_key);
  101. return Cookie::set(self::cookie_miniapp,$key,self::cookie_miniapp_times);
  102. }
  103. /**
  104. * 清空管理信息
  105. * @access public
  106. */
  107. public static function clearMiniapp(){
  108. return Cookie::delete(self::cookie_miniapp);
  109. }
  110. }