Login.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace app\routine\controller;
  3. use app\routine\model\user\RoutineUser;
  4. use behavior\routine\RoutineBehavior;
  5. use service\JsonService;
  6. use service\UtilService;
  7. use think\Controller;
  8. use think\Request;
  9. use think\Session;
  10. class Login extends Controller{
  11. /**
  12. * 获取用户信息
  13. * @param Request $request
  14. * @return \think\response\Json
  15. */
  16. public function index(Request $request){
  17. $data = UtilService::postMore([['info',[]]],$request);//获取前台传的code
  18. $data = $data['info'];
  19. unset($data['info']);
  20. $res = $this->setCode($data['code']);
  21. if(!isset($res['openid'])) return JsonService::fail('openid获取失败');
  22. if(isset($res['unionid'])) $data['unionid'] = $res['unionid'];
  23. else $data['unionid'] = '';
  24. $data['openid'] = $res['openid'];
  25. $data['session_key'] = $res['session_key'];
  26. $data['uid'] = RoutineUser::routineOauth($data);
  27. return JsonService::successful($data);
  28. }
  29. /**
  30. * 根据前台传code 获取 openid 和 session_key //会话密匙
  31. * @param string $code
  32. * @return array|mixed
  33. */
  34. public function setCode($code = ''){
  35. if($code == '') return [];
  36. $routineAppId = 'wx7bc36cccc15e4be2';//小程序appID
  37. $routineAppSecret = 'a13757487f35b0ad88c03455b1903c4d';//小程序AppSecret
  38. $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$routineAppId.'&secret='.$routineAppSecret.'&js_code='.$code.'&grant_type=authorization_code';
  39. return json_decode(RoutineBehavior::curlGet($url),true);
  40. }
  41. }