微信登录
This commit is contained in:
parent
dd1fac2198
commit
49d7b3f1ac
|
|
@ -6,17 +6,28 @@ use app\common\controller\Api;
|
|||
|
||||
class Worker extends Api
|
||||
{
|
||||
protected $noNeedLogin = ['phoneLogin'];
|
||||
protected $noNeedLogin = ['login'];
|
||||
protected $noNeedRight = ['*'];
|
||||
|
||||
function phoneLogin()
|
||||
function login()
|
||||
{
|
||||
$params = $this->request->request();
|
||||
$validate = $this->validate($params, \app\api\validate\Worker::class . '.phoneLogin');
|
||||
$validate = $this->validate($params, \app\api\validate\Worker::class . '.login');
|
||||
if ($validate !== true) {
|
||||
$this->error($validate);
|
||||
}
|
||||
|
||||
$this->success('登录成功', $this->getWorkerService()->phoneLogin($params['code']));
|
||||
$this->success('登录成功', $this->getWorkerService()->login($params['code']));
|
||||
}
|
||||
|
||||
function bindPhoneNumber()
|
||||
{
|
||||
$params = $this->request->request();
|
||||
$validate = $this->validate($params, \app\api\validate\Worker::class . '.bindPhoneNumber');
|
||||
if ($validate !== true) {
|
||||
$this->error($validate);
|
||||
}
|
||||
|
||||
$this->success('操作成功', $this->getWorkerService()->bindPhoneNumber($params['code']));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ use think\Validate;
|
|||
class Worker extends Validate
|
||||
{
|
||||
protected $rule = [
|
||||
'code|手机号获取凭证 code ' => 'require|max:128',
|
||||
'code' => 'require|max:128',
|
||||
];
|
||||
|
||||
protected $message = [
|
||||
|
|
@ -15,6 +15,7 @@ class Worker extends Validate
|
|||
];
|
||||
|
||||
protected $scene = [
|
||||
'phoneLogin' => ['code'],
|
||||
'login' => ['code'],
|
||||
'bindPhoneNumber' => ['code'],
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,8 +13,13 @@ class BaseService
|
|||
protected function apiError($msg, $code = 0, $data = [])
|
||||
{
|
||||
if (!empty($data)) {
|
||||
array_unshift($data, $msg);
|
||||
Log::log($data);
|
||||
array_unshift($data, ['msg' => $msg]);
|
||||
|
||||
$log = [
|
||||
'请求参数' => $_REQUEST,
|
||||
'结果' => $data,
|
||||
];
|
||||
Log::log($log);
|
||||
}
|
||||
|
||||
throw new ApiException($msg, $code);
|
||||
|
|
|
|||
|
|
@ -2,29 +2,55 @@
|
|||
|
||||
namespace app\services;
|
||||
|
||||
use app\api\library\ApiException;
|
||||
use EasyWeChat\Factory;
|
||||
use EasyWeChat\Kernel\Exceptions\InvalidConfigException;
|
||||
use EasyWeChat\MiniProgram\Application;
|
||||
|
||||
class WorkerService extends BaseService
|
||||
{
|
||||
public function phoneLogin(string $code)
|
||||
public function bindPhoneNumber(string $code)
|
||||
{
|
||||
$config = [
|
||||
'app_id' => config('mini_program.app_id'),
|
||||
'secret' => config('mini_program.secret'),
|
||||
];
|
||||
$app = Factory::miniProgram($config);
|
||||
$phoneInfo = $app->getPhoneNumber($code);
|
||||
//getPhoneNumber 方法通过魔术方法 __call 获取
|
||||
$phoneInfo = $this->getMiniProgramApp()->getPhoneNumber($code);
|
||||
|
||||
if (empty($phoneInfo)) {
|
||||
$this->apiError('手机号登录失败', 0, $phoneInfo);
|
||||
$this->apiError('获取手机号失败', 0, $phoneInfo);
|
||||
}
|
||||
|
||||
if ($phoneInfo['errcode'] !== 0) {
|
||||
$this->apiError('手机号登录失败', 0, $phoneInfo);
|
||||
$this->apiError('获取手机号失败', 0, $phoneInfo);
|
||||
}
|
||||
|
||||
$phone = $phoneInfo['phone_info']['phoneNumber'];
|
||||
dump($phone);
|
||||
}
|
||||
|
||||
public function login(string $code)
|
||||
{
|
||||
$app = $this->getMiniProgramApp();
|
||||
try {
|
||||
$info = $app->auth->session($code);
|
||||
} catch (InvalidConfigException $e) {
|
||||
$this->apiError('登录失败', $e);
|
||||
}
|
||||
|
||||
if (isset($info['errcode']) && $info['errcode'] !== 0) {
|
||||
$this->apiError('登录失败', 0, $info);
|
||||
}
|
||||
|
||||
dd($info);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取小程序 App
|
||||
* @return Application
|
||||
*/
|
||||
private function getMiniProgramApp(): Application
|
||||
{
|
||||
$config = [
|
||||
'app_id' => config('mini_program.app_id'),
|
||||
'secret' => config('mini_program.secret'),
|
||||
];
|
||||
return Factory::miniProgram($config);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user