Login.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\service\DingtalkService;
  4. use app\common\model\User;
  5. use hg\apidoc\annotation as Apidoc;
  6. /**
  7. * @Apidoc\Title("登录")
  8. * @Apidoc\Group("api")
  9. * @Apidoc\Sort("1")
  10. */
  11. class Login extends Base
  12. {
  13. // 需要登录
  14. protected $need_login = [];
  15. public function initialize()
  16. {
  17. parent::initialize();
  18. }
  19. /**
  20. * 登录
  21. *
  22. * @Apidoc\Method("POST")
  23. * @Apidoc\Param("code", type="string",require=true, desc="免登授权码")
  24. * @Apidoc\Returned("data", type="string", desc="用户token")
  25. */
  26. public function login(){
  27. $code = input('code') ?: '';
  28. if(!$code){
  29. $this->error('授权码错误');
  30. }
  31. $resp = DingtalkService::get_user_info($code);
  32. $user = User::where('userid',$resp->userid)->value('id');
  33. if(!$user){
  34. $this->error('不是内部人员');
  35. }
  36. $token = $this->createJwt($user);
  37. $this->success('登录成功',$token);
  38. }
  39. /**
  40. * 获取token
  41. *
  42. * @Apidoc\Method("POST")
  43. * @Apidoc\Param("uid", type="string",require=true, desc="用户ID")
  44. * @Apidoc\Returned("data", type="string", desc="用户token")
  45. */
  46. public function get_token(){
  47. $uid = input('uid') ?: '';
  48. if(!$uid){
  49. $this->error('uid错误');
  50. }
  51. $token = $this->createJwt($uid);
  52. $this->success('获取成功',$token);
  53. }
  54. }