使用官方Laravel Docs 5.1 - Socialite,我设置了我的路由并编辑了我的AuthController。
public function redirectToProvider()
{
return Socialite::driver('facebook')
->scopes(['public_profile', 'email'])->redirect();
}
它运作完美并且返回
http://domain.dev/auth/facebook/callback?code=AQDLFlYr...
然后我使用Laracasts' Socialite - Laravel 5.0,我尝试将我的一个转换为适当的Facebook身份验证。我做了所有事情,直到( min.12.11 ,特别是)在视频中。 (12.11他在15秒内回顾了这些东西)。这就是我想要做的。
现在,当我将AuthController
更改为:
public function redirectToProvider(AuthenticateUser $authenticateUser, Request $request)
{
return $authenticateUser->execute($request->has('code'));
}
...让我的AuthenticateUser class
像这样:
use Illuminate\Contracts\Auth\Guard; (PS. I changed Authenticator to Guard)
class AuthenticateUser {
private $users;
private $socialite;
private $auth;
public function __construct(UserRepository $users, Socialite $socialite, Guard $auth)
{
$this->users = $users;
$this->socialite = $socialite;
$this->auth = $auth;
}
public function execute($hasCode)
{
// dd($hasCode) *First dd
if ( ! $hasCode) return $this->getAuthorizationFirst();
$user = $this->socialite->driver('facebook')->user();
// dd($hasCode) *Second dd
// dd($user) *Third dd
}
private function getAuthorizationFirst()
{
return $this->socialite->driver('facebook')
->scopes(['public_profile', 'email'])->redirect();
}
}
*UserRepository is currently empty.
当我使用*First dd
时,我会在屏幕上收到False
。
当我使用*Second dd
时,我会收到True
。
当我使用*Third dd
时,我什么也得不到。
在所有这些情况下,现在,我正在接收http://domain.dev/auth/facebook?code=9329409329042
。
编辑:
我添加了return
,现在该链接包含?code=9390249032...
,但是当我使用*Third dd
- dd($user)
时,仍然没有返回任何内容
我设法来到这里:
public function execute($hasCode)
{
dd($hasCode); // returns FALSE now
if ( ! $hasCode) return $this->getAuthorizationFirst();
dd($hasCode); // returns TRUE now
$user = $this->socialite->driver('facebook')->user();
dd($user); // BUT STILL RETURNS NOTHING
}
..和链接包含?code=9943290...
$user = $this->socialite->driver('facebook')->user();
是不工作/转换的部分,因为dd($ user)没有返回任何内容..