LoginController.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. return message(2004, true, $result);
  47. }
  48. public function register(MemberValidator $validator)
  49. {
  50. $params = request()->all();
  51. $params = $validator->check($params, 'reg');
  52. if(!is_array($params)){
  53. return message($params, false);
  54. }
  55. $apiKey = request()->post('api_key','');
  56. if(!$apiInfo = ApiService::make()->checkApi($apiKey)){
  57. return message(ApiService::make()->getError(), false);
  58. }
  59. $apiId = isset($apiInfo['id'])? $apiInfo['id'] : 0;
  60. if($apiId<=0){
  61. return message(6002, false);
  62. }
  63. if(!$result = MemberService::make()->apiRegister($apiId,$params)){
  64. return message(MemberService::make()->getError(), false);
  65. }
  66. return message(2004, true, $result);
  67. }
  68. }