First, you should configure the authentication providers you would like to use in your config/services.php
file.
'twitter' => [
'client_id' => 'your-client-id',
'client_secret' => 'your-client-secret',
'redirect' => 'http://yourapp.com/auth/twitter/callback'
],
<?php
use Laravel\Socialite\Contracts\Factory as SocialiteFactory;
class YourController extends BaseController {
public function __construct(SocialiteFactory $socialite)
{
$this->socialite = $socialite;
}
public function redirectToTwitter()
{
return $this->socialite->driver('twitter')->redirect();
}
}
You may also add scopes to the authentication call:
public function redirectToTwitter()
{
return $this->socialite->driver('twitter')
->scopes(['scope1', 'scope2'])
->redirect();
}
After the user accepts the authentication prompt on the provider:
<?php
use Laravel\Socialite\Contracts\Factory as SocialiteFactory;
class YourController extends BaseController {
public function __construct(SocialiteFactory $socialite)
{
$this->socialite = $socialite;
}
public function getUserDetails()
{
$user = $this->socialite->driver('twitter')->user();
}
}
The user
method returns an implementation of Laravel\Cashier\Contracts\User
.