UsersController.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace App\Http\Controllers\QuickApp\Oauth;
  3. use App\Consts\SysConsts;
  4. use Illuminate\Http\Request;
  5. use App\Http\Controllers\Controller;
  6. use App\Modules\User\Services\QappUserService;
  7. use JWTAuth;
  8. use Tymon\JWTAuth\Exceptions\JWTException;
  9. class UsersController extends Controller
  10. {
  11. /**
  12. * @apiDefine Login 登录
  13. */
  14. /**
  15. * @apiVersion 1.0.0
  16. * @apiDescription 登录
  17. * @api {post} login 登录
  18. * @apiParam {String} device_no 设备号
  19. * @apiParam {String} device_info 设备信息json字符串格式
  20. * @apiParam {Int} send_order_id send_order_id
  21. * @apiParam {Int} timestamp 时间戳10分钟过期
  22. * @apiParam {String} sign 签名(见微信支付签名https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=4_3)
  23. * @apiGroup Login
  24. * @apiName index
  25. * @apiSuccess {int} code 状态码
  26. * @apiSuccess {String} msg 信息
  27. * @apiSuccess {object} data 结果集
  28. * @apiSuccess {String} data.uid 用户uid
  29. * @apiSuccess {String} data.token token
  30. * @apiSuccess {Int} data.time 过期时间
  31. * @apiSuccessExample {json} Success-Response:
  32. * HTTP/1.1 200 OK
  33. * {
  34. * code: 0,
  35. * msg: "",
  36. * data: {
  37. * token:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
  38. * time:123455,
  39. * uid:1
  40. * }
  41. * }
  42. */
  43. public function index(Request $request)
  44. {
  45. $package = $request->input('package', '');
  46. $send_order_id = $request->input('send_order_id', 0);
  47. $device_no = $request->input('device_no', '');
  48. $androidid = $request->input('androidid', '');
  49. $mac = $request->input('mac', '');
  50. $device_info = $request->input('device_info', '');
  51. if ($device_no) {
  52. $data = (new QappUserService)->login(compact('package', 'send_order_id', 'device_no', 'androidid', 'mac', 'device_info'));
  53. return response()->success($data);
  54. } else {
  55. return response()->error('PARAM_ERROR');
  56. }
  57. }
  58. /**
  59. * @apiVersion 1.0.0
  60. * @apiDescription 刷新token
  61. * @api {get} refreshToken 刷新token
  62. * @apiParam {String} [token] token
  63. * @apiHeader {String} [Authorization] token 两个token任选其一
  64. * @apiGroup Login
  65. * @apiName RefreshToken
  66. * @apiSuccess {int} code 状态码
  67. * @apiSuccess {String} msg 信息
  68. * @apiSuccess {object} data 结果集
  69. * @apiSuccess {String} data.token token
  70. * @apiSuccess {Int} data.time 过期时间
  71. * @apiSuccessExample {json} Success-Response:
  72. * HTTP/1.1 200 OK
  73. * {
  74. * code: 0,
  75. * msg: "",
  76. * data: {
  77. * token:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
  78. * time:123455
  79. * }
  80. * }
  81. */
  82. public function refreshToken()
  83. {
  84. try {
  85. $old_token = JWTAuth::getToken();
  86. $token = JWTAuth::refresh($old_token);
  87. $time = strtotime("+1 month");
  88. return response()->success(compact('token', 'time'));
  89. } catch (JWTException $e) {
  90. return response()->error('QAPP_NOT_LOGIN');
  91. }
  92. }
  93. }