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.