在验证laravel 中 InvalidArgumentException Driver [WeiBo] not supported.
public function weibo() { return Socialite::driver('weibo')->redirect(); // return \Socialite::with('WeiBo')->scopes(array('email'))->redirect(); }
public function callback()
{
/*$code=request('code');
dd($code);*/
$oauthUser = Socialite::driver('weibo')->user();
// dd($oauthUser);
$sina_id = (int)$oauthUser->getId();
$name = $oauthUser->getName();
$nickname = $oauthUser->getNickname();
$email = $oauthUser->getEmail();
$sina_avatar = $oauthUser->getAvatar();
/* //从 Token(OAuth2)中获取用户信息
$token = $oauthUser->token;
$user = Socialite::driver('WeiBo')->userFromToken($token);
dd($user);*/
$where['sina_id'] = $sina_id;
$userDetail = ThirdLogin::where($where)->first();
//若sina_id用户不存在,向third_login表中添加用户信息的同时,向user表中也添加条信息,
//将user信息与third_login,方便前台登录查询
if (empty($userDetail)) {
$user = ThirdLogin::create(compact('sina_id', 'name', 'nickname', 'email', 'sina_avatar'));
$name = $user->nickname;
$avatar = $user->sina_avatar;
$email = $user->email;
$third_id = $user->sina_id;
$password = 0;
User::create(compact('name', 'password', 'email', 'avatar', 'third_id'));
//使用Auth::login(实例,true)授权登录 ,这部分代码不能拿出去优化
$is_user = user::where('third_id', $user->sina_id)->first();
Auth::login($is_user, $remember = false);
if (\Auth::check()) {//授权成功
return \redirect('/posts');
} else {
return \Redirect::back()->withErrors('授权失败');
}
// User::third_login($user);
} else {
$is_user = user::where('third_id', $userDetail->sina_id)->first();
Auth::login($is_user, $remember = false);
if (\Auth::check()) {//授权成功
return \redirect('/posts');
} else {
return \Redirect::back()->withErrors('授权失败');
}
// User::third_login($userDetail);
// return Redirect::back()->withErrors('微博用户'.$userDetail->nickname.'已存在');
}
}