|
|
|
@ -6,9 +6,9 @@ use App\User;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
|
|
|
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
|
|
|
use Overtrue\LaravelWeChat\Facade as EasyWeChat;
|
|
|
|
use Socialite;
|
|
|
|
use Socialite;
|
|
|
|
use Validator;
|
|
|
|
use Validator;
|
|
|
|
use EasyWeChat;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AuthenticateController extends ApiController
|
|
|
|
class AuthenticateController extends ApiController
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -27,35 +27,22 @@ class AuthenticateController extends ApiController
|
|
|
|
return 'openid';
|
|
|
|
return 'openid';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function easyWechatGetSession($code)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
// $config = config('wechat.mini_program.default');
|
|
|
|
|
|
|
|
// $app = Facade::miniProgram($config);
|
|
|
|
|
|
|
|
// return $app->auth->session($code);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 处理小程序的自动登陆和注册
|
|
|
|
* 处理小程序的自动登陆和注册
|
|
|
|
* @param Request $request
|
|
|
|
* @param Request $request
|
|
|
|
* @return mixed
|
|
|
|
* @return mixed
|
|
|
|
|
|
|
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public function auto_login(Request $request)
|
|
|
|
public function auto_login(Request $request)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// 获取openid
|
|
|
|
// 获取openid
|
|
|
|
if ($request->code) {
|
|
|
|
|
|
|
|
$wx_info = $this->easyWechatGetSession($request->code);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$mini = EasyWeChat::miniProgram();
|
|
|
|
$mini = EasyWeChat::miniProgram();
|
|
|
|
|
|
|
|
$miniInfo = $mini->auth->session($request->get('code'));
|
|
|
|
return $wx_info;
|
|
|
|
// 判断用户是否合法
|
|
|
|
|
|
|
|
if (!$request->get('openid') && empty($miniInfo['openid'])) {
|
|
|
|
if (!$request->openid && empty($wx_info['openid'])) {
|
|
|
|
|
|
|
|
return $this->failed('用户openid没有获取到', 401);
|
|
|
|
return $this->failed('用户openid没有获取到', 401);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$openid = empty($wx_info['openid'])?$request->openid:$wx_info['openid'];
|
|
|
|
$openid = empty($miniInfo['openid']) ? $request->get('openid') : $miniInfo['openid'];
|
|
|
|
$userInfo = User::where('openid', $openid)->first();
|
|
|
|
$userInfo = User::where('openid', $openid)->first();
|
|
|
|
if ($userInfo && $userInfo->toArray()) {
|
|
|
|
if ($userInfo && $userInfo->toArray()) {
|
|
|
|
//执行登录
|
|
|
|
//执行登录
|
|
|
|
@ -64,10 +51,10 @@ class AuthenticateController extends ApiController
|
|
|
|
$userInfo->save();
|
|
|
|
$userInfo->save();
|
|
|
|
// 直接创建token
|
|
|
|
// 直接创建token
|
|
|
|
$token = $userInfo->createToken($openid)->accessToken;
|
|
|
|
$token = $userInfo->createToken($openid)->accessToken;
|
|
|
|
return $this->success(compact('token','userInfo'));
|
|
|
|
return $this->success(compact('token', 'userInfo'));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
//执行注册
|
|
|
|
//执行注册
|
|
|
|
return $this->register($request,$openid);
|
|
|
|
return $this->register($request, $openid);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -75,17 +62,18 @@ class AuthenticateController extends ApiController
|
|
|
|
* 用户注册
|
|
|
|
* 用户注册
|
|
|
|
* @param Request $request
|
|
|
|
* @param Request $request
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public function register($request,$openid)
|
|
|
|
public function register($request, $openid)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
// 进行基本验证
|
|
|
|
// 进行基本验证
|
|
|
|
$user_info = \GuzzleHttp\json_decode($request->input('rawData'),true);
|
|
|
|
return $request->input('rawData');
|
|
|
|
|
|
|
|
$user_info = \GuzzleHttp\json_decode($request->input('rawData'), true);
|
|
|
|
//注册信息 字段名=》get到的值
|
|
|
|
//注册信息 字段名=》get到的值
|
|
|
|
$newUser = [
|
|
|
|
$newUser = [
|
|
|
|
'openid' => $openid, //openid
|
|
|
|
'openid' => $openid, //openid
|
|
|
|
'nickname' => $user_info['nickName'],// 昵称
|
|
|
|
'nickname' => $user_info['nickName'],// 昵称
|
|
|
|
'email' => time().'sqc157400661@163.com',// 邮箱
|
|
|
|
'email' => time() . 'sqc157400661@163.com',// 邮箱
|
|
|
|
'name' => $user_info['nickName'],// 昵称
|
|
|
|
'name' => $user_info['nickName'],// 昵称
|
|
|
|
'avatar' =>$user_info['avatarUrl'], //头像
|
|
|
|
'avatar' => $user_info['avatarUrl'], //头像
|
|
|
|
'unionid' => '', // unionid (可空)
|
|
|
|
'unionid' => '', // unionid (可空)
|
|
|
|
'state' => 1,
|
|
|
|
'state' => 1,
|
|
|
|
'role' => 0,
|
|
|
|
'role' => 0,
|
|
|
|
@ -97,7 +85,7 @@ class AuthenticateController extends ApiController
|
|
|
|
$userInfo = User::create($newUser);
|
|
|
|
$userInfo = User::create($newUser);
|
|
|
|
// 直接创建token
|
|
|
|
// 直接创建token
|
|
|
|
$token = $userInfo->createToken($openid)->accessToken;
|
|
|
|
$token = $userInfo->createToken($openid)->accessToken;
|
|
|
|
return $this->success(compact('token','userInfo'));
|
|
|
|
return $this->success(compact('token', 'userInfo'));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected function sendFailedLoginResponse(Request $request)
|
|
|
|
protected function sendFailedLoginResponse(Request $request)
|
|
|
|
|