AuthController.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Modules\Mini\Controllers;
  3. use App\Base\BaseController;
  4. use App\Models\User\User;
  5. use App\Modules\Mini\Services\AuthService;
  6. use App\Modules\Mini\Services\WechatService;
  7. use Faker\Provider\Image;
  8. class AuthController extends BaseController
  9. {
  10. public function codeToSession()
  11. {
  12. $params = $this->valid([
  13. "code" => "required",
  14. ]);
  15. $sessionData = app(WechatService::class)->codeToSession($params['code']);
  16. $token = app(AuthService::class)->authByOpenid($sessionData['openid']);
  17. return $this->ok([
  18. "token" => $token,
  19. "openid" => $sessionData['openid'],
  20. "sessionKey" => $sessionData['session_key'],
  21. ]);
  22. }
  23. public function decryptUserInfo()
  24. {
  25. $params = $this->valid([
  26. "iv" => "required",
  27. "encrypted_data" => "required",
  28. "session_key" => "required",
  29. ]);
  30. app(WechatService::class)->decryptUserInfo($params);
  31. /** @var User $user */
  32. $user = \Auth::user();
  33. return $this->ok([
  34. "token" => app(AuthService::class)->encryptToken($user->id),
  35. "name" => $user->name,
  36. "phone" => $user->phone,
  37. ]);
  38. }
  39. public function decryptPhone()
  40. {
  41. return $this->ok([
  42. "token" => "token",
  43. "name" => "",
  44. "phone" => "",
  45. ]);
  46. }
  47. public function profile()
  48. {
  49. return $this->ok([
  50. "id" => 1,
  51. "token" => "token",
  52. "name" => "用户名称",
  53. "avatar" => Image::imageUrl(),
  54. "company" => [
  55. "id" => 1,
  56. "name" => "公司名称",
  57. ],
  58. ]);
  59. }
  60. }