Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将用户重定向到各自的提供商,如laravel 5.4中的facebook、twitter_Php_Database_Laravel 5_Laravel 5.4 - Fatal编程技术网

Php 如何将用户重定向到各自的提供商,如laravel 5.4中的facebook、twitter

Php 如何将用户重定向到各自的提供商,如laravel 5.4中的facebook、twitter,php,database,laravel-5,laravel-5.4,Php,Database,Laravel 5,Laravel 5.4,将$authUser->$provider==='twitter'更改为您实际需要的正确测试,我想应该是$provider=='twitter'它将所有提供商重定向到facebook OnlyTanks作为您的帮助人…它工作得很好…非常感谢 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Socialite; use App\User; use Auth; class SocialLogin

$authUser->$provider==='twitter'
更改为您实际需要的正确测试,我想应该是
$provider=='twitter'

它将所有提供商重定向到facebook OnlyTanks作为您的帮助人…它工作得很好…非常感谢
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Socialite;
use App\User;
use Auth;

class SocialLoginController extends Controller
{

    public function redirectToProvider($provider)
    {
        return Socialite::driver($provider)->redirect();
    }
    public function handleProviderCallback($provider)
    {
        try{
            $user = Socialite::driver($provider)->user();

        }catch(Exception $e){
            return redirect('auth/{$provider}');
        }
        // dd($user);
        $authUser = $this->findOrCreateUser($user);

        Auth::login($authUser, true);

        if($authUser->$provider === 'twitter') {
            return redirect()->intended('https://twitter.com/');
        }

        return redirect()->intended('https://www.facebook.com/');
    }

    Private function findOrCreateUser($providerUser)
    {
        $authUser = User::where('provider_id', $providerUser->id)->first();

        if ($authUser){
            return $authUser;
        }

        return User::create([
            'name' => $providerUser->name,
            'email' => $providerUser->email,
            'provider_id' => $providerUser->id,
            'avatar' => $providerUser->avatar,
            'avatar_original' => $providerUser->avatar_original,
            // 'profileUrl' => $twitterUser->profileUrl
            ]);
    }
}
Route::get('auth/{provider}', ['as' => 'auth/{provider}', 'uses' => 'SocialLoginController@redirectToProvider']);
Route::get('auth/{provider}/callback',['as' => 'auth/{provider}/callback', 'uses' => 'SocialLoginController@handleProviderCallback']);