【问题标题】:How to redirect the user to respective providers eg facebook,twitter in laravel 5.4如何将用户重定向到相应的提供商,例如 laravel 5.4 中的 facebook、twitter
【发布时间】:2017-06-09 07:35:13
【问题描述】:
<?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']);

【问题讨论】:

  • 它将所有提供商仅重定向到 facebook

标签: php database laravel-5 laravel-5.4


【解决方案1】:

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

【讨论】:

  • 感谢您的帮助...完美...非常感谢
猜你喜欢
  • 2023-03-26
  • 2021-01-02
  • 2018-04-08
  • 2023-03-20
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 2017-12-14
  • 1970-01-01
相关资源
最近更新 更多