User.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. class User extends Lyapi_Controller{
  4. // 注意:登录接口不能受基础控制器的登录校验,可以覆盖构造方法或单独处理
  5. public function __construct() {
  6. // 这里不执行登录校验,只加载缓存驱动
  7. parent::__construct(); // 暂时注释,或者使用一个新的不校验的基类
  8. // 简便做法:复制 Lyapi_Controller 的部分代码但不调用 _check_api_auth
  9. // $this->load->driver('cache'); // 加载缓存驱动
  10. }
  11. public function login() {
  12. $user_id =123;
  13. // ... 验证账号密码成功,得到 $user_id
  14. // $data = [
  15. // 'user_id' => $user_id,
  16. // 'created_at' => time()
  17. // ];
  18. // $this->cache->save("lvhaoceshi1", $data, 100);
  19. echo "<pre>";
  20. print_r($this->cache->get("lvhaoceshi1"));
  21. die;
  22. //$this->load->driver('cache'); // 确保缓存可用
  23. // 生成唯一 token(可以用 JWT 或随机字符串)
  24. $token = bin2hex(random_bytes(32));
  25. $cache_key = 'token:' . md5($token);
  26. // 写入缓存,有效期7200秒(2小时)
  27. $this->cache->save($cache_key, $user_id, 7200);
  28. // 返回 token 给客户端
  29. $this->output
  30. ->set_content_type('application/json')
  31. ->set_output(json_encode([
  32. 'status' => true,
  33. 'token' => $token,
  34. 'expire' => 7200
  35. ]));
  36. }
  37. }