微信绑定登录(开放平台)
Composer require overtrue/Laravel-socialite
User 表加个 wechat_id 字段
WechatLoginController
<?PHP
namespace App\Http\Controllers;
use App\User;
use Socialite;
/**
* 微信登录模块
*
* Class WechatLoginController.
*/
class WechatLoginController extends Controller
{
/**
* 跳转到微信登录页面
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function redirectToProvider ()
{return Socialite::driver ('wechat')->redirect ();}
/**
* 微信扫码登录后的回调函数
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View
*/
public function handleProviderCallback ()
{$wechat_user = Socialite::driver ('wechat')->user ();
if (\Auth::check ()) {$user = \Auth::user ();
$user->wechat_id = $wechat_user->id;
if (empty ($user->avatar)) {$user->avatar = $wechat_user->avatar;
}
if (empty ($user->nickname)) {$user->nickname = $wechat_user->nickname;
}
$user->save ();
return redirect ()->route ('user');
} else {$user = \App\Models\User::where ('wechat_id', $wechat_user->id)->first ();
if ($user) {\Auth::login ($user);
return redirect ()->route ('home');
} else {return view ('pages.error', ['msg' => '该微信号未绑定,请先绑定']);
}
}
}
}
.env
WECHAT_KEY=wx159 ac90 a15 a9 df98
WECHAT_SECRET=527 d43 ddafdada015 efa2 ecdae158 d94
WECHAT_REDIRECT_URI=https://s.zhyxm.com/OAuth/wechat/callback
web.php
Route::get ('/OAuth/wechat', 'WechatLoginController@redirectToProvider')->name ('wechat.oauth.login');
Route::get ('/OAuth/wechat/callback', 'WechatLoginController@handleProviderCallback');