/application/index/controller/Login.php

https://github.com/nick-bai/HappyChat · PHP · 60 lines · 43 code · 10 blank · 7 comment · 3 complexity · b7126d6c9913fbc18cae05cd633d387b MD5 · raw file

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: NickBai
  5. * Email: 876337011@qq.com
  6. * Date: 2019/6/22
  7. * Time: 8:35 AM
  8. */
  9. namespace app\index\controller;
  10. use Lcobucci\JWT\Builder;
  11. use think\Controller;
  12. class Login extends Controller
  13. {
  14. public function index()
  15. {
  16. return $this->fetch();
  17. }
  18. public function doLogin()
  19. {
  20. if (request()->isPost()) {
  21. $param = input('post.');
  22. $param['account'] = trim($param['account']);
  23. if (empty($param['account'])) {
  24. return json(['code' => -1, 'data' => '', 'msg' => '请输入昵称']);
  25. }
  26. try {
  27. $has = db('customers')->field('id')->where('name', $param['account'])->find();
  28. if (!empty($has)) {
  29. return json(['code' => -2, 'data' => '', 'msg' => '该昵称已经存在']);
  30. }
  31. } catch (\Exception $e) {
  32. return json(['code' => -3, 'data' => $e->getMessage(), 'msg' => '系统错误']);
  33. }
  34. $uid = uniqid();
  35. $avatar = '/static/images/avatar/' . mt_rand(1, 13) . '.png';
  36. $time = time();
  37. $token = (new Builder())->setIssuer('http://baiyf.com')
  38. ->setAudience('http://chat.baiyf.com')
  39. ->setId(uniqid(), true)
  40. ->setIssuedAt($time)
  41. ->setNotBefore($time)
  42. ->setExpiration($time + 86400) // 1天有效期
  43. ->set('uid', $uid)
  44. ->set('name', $param['account'])
  45. ->set('avatar', $avatar)
  46. ->getToken();
  47. return json(['code' => 0, 'data' => base64_encode((string)$token), 'msg' => '登录成功']);
  48. }
  49. }
  50. }