I am trying to login with Twitter using socialite. Everything is working fine till callback. Once I reach at callback, I am facing this error, called Unresolvable dependency resolving [Parameter #0 [ $app ]] in class Illuminate\Support\ServiceProvider
Here is my Service Provider:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use User;
use Laravel\Socialite\Contracts\User as ProviderUser;
class SocialTwitterAccountService extends ServiceProvider
{
public function createOrGetUser(ProviderUser $providerUser)
{
$account = SocialTwitterAccount::whereProvider('twitter')
->whereProviderUserId($providerUser->getId())
->first();
if ($account) {
return $account->user;
} else {
$account = new SocialTwitterAccount([
'provider_user_id' => $providerUser->getId(),
'provider' => 'twitter'
]);
$user = User::whereEmail($providerUser->getEmail())->first();
if (!$user) {
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
'password' => md5(rand(1, 10000)),
]);
}
$account->user()->associate($user);
$account->save();
return $user;
}
}
}
And I've also registered it in provider:
App\Providers\SocialTwitterAccountService::class,
Here is my redirect and callback functions:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;
use App\Providers\SocialTwitterAccountService;
class SocialAuthTwitterController extends Controller
{
/**
* Create a redirect method to twitter api.
*
* @return void
*/
public function redirect()
{
return Socialite::driver('twitter')->redirect();
}
/**
* Return a callback method from twitter api.
*
* @return callback URL from twitter
*/
public function callback(SocialTwitterAccountService $service)
{
$user = $service->createOrGetUser(Socialite::driver('twitter')->user());
auth()->login($user);
return redirect()->to('/home');
}
}
from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2p8oFow
via IFTTT
Aucun commentaire:
Enregistrer un commentaire