LoginController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Http\Controllers\Oapi;
  3. use App\Http\Validator\MemberValidator;
  4. use App\Models\ApiModel;
  5. use App\Services\Api\MemberService;
  6. use App\Services\Common\ApiService;
  7. use App\Services\RedisService;
  8. /**
  9. * 登陆注册
  10. * Class LoginController
  11. * @package App\Http\Controllers\Oapi
  12. */
  13. class LoginController extends webApp
  14. {
  15. /**
  16. * 登录
  17. */
  18. public function login(MemberValidator $validator)
  19. {
  20. $params = request()->all();
  21. $apiKey = request()->post('api_key','');
  22. if(!$apiInfo = ApiService::make()->checkApi($apiKey)){
  23. return message(ApiService::make()->getError(), false);
  24. }
  25. $apiId = isset($apiInfo['id'])? $apiInfo['id'] : 0;
  26. if($apiId<=0){
  27. return message(6002, false);
  28. }
  29. // 若为外汇平台,不需要登录直接
  30. $userType = isset($params['user_type'])? intval($params['user_type']) : 3;
  31. if($userType == 3){
  32. $token = 'TK'.strtoupper(md5($apiId . $apiKey).rand(100,999));
  33. RedisService::set("apis:tokens:{$token}", ['id' => 0, 'api_id'=> $apiId, 'info' => [], 'token' => $token], 48 * 3600);
  34. return message(2004, true, [
  35. 'token' => $token,
  36. 'api_id' => $apiId,
  37. ]);
  38. }
  39. $params = $validator->check($params, 'login');
  40. if(!is_array($params)){
  41. return message($params, false);
  42. }
  43. if(!$result = MemberService::make()->apiLogin($apiId,$params)){
  44. return message(MemberService::make()->getError(), false);
  45. }
  46. $token = isset($result['token'])? $result['token'] : '';
  47. return message($token?2004:2029, true, $result);
  48. }
  49. public function register(MemberValidator $validator)
  50. {
  51. $params = request()->all();
  52. $params = $validator->check($params, 'reg');
  53. if(!is_array($params)){
  54. return message($params, false);
  55. }
  56. $apiKey = request()->post('api_key','');
  57. if(!$apiInfo = ApiService::make()->checkApi($apiKey)){
  58. return message(ApiService::make()->getError(), false);
  59. }
  60. $apiId = isset($apiInfo['id'])? $apiInfo['id'] : 0;
  61. if($apiId<=0){
  62. return message(6002, false);
  63. }
  64. if(!$result = MemberService::make()->apiRegister($apiId,$params)){
  65. return message(MemberService::make()->getError(), false);
  66. }
  67. return message(2004, true, $result);
  68. }
  69. }