亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Facebook 登錄在 Laravel 中不起作用

使用 Facebook 登錄在 Laravel 中不起作用

PHP
藍山帝景 2022-12-23 16:04:21
我剛剛為用戶實現了讓他使用 Facebook 登錄的代碼。在登錄視圖中,當他點擊“使用 Facebook 登錄”按鈕時,它顯示如下錯誤:查看 [auth.redirect] 未找到順便說一句,我的主頁視圖不在根目錄中,而是在 auth 文件夾中。我不知道它為什么要尋找視圖,因為重定向只是我的控制器中定義的一個函數。路線.php<?phpRoute::group([ 'middleware' => ['web']], function(){      Route::get('/', function () {        return view('auth.home');      })->name('home');//Facebook LoginRoute::get('/redirect', 'SocialAuthFacebookController@redirect');Route::get('/callback', 'SocialAuthFacebookController@callback');});SocialAuthFacebookController.php<?phpclass SocialAuthFacebookController extends Controller{    public function redirect()    {        return Socialite::driver('facebook')->redirect();    } public function callback(SocialFacebookAccountService $service) {     $user = $service->createOrGetUser(Socialite::driver('facebook')->user());     auth()->login($user);     return redirect()->to('/home'); }}
查看完整描述

3 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

完整描述如何登錄 facebook 和 laravel:

  1. 安裝新的 laravel

  2. 創建數據庫并連接

  3. 在用戶遷移文件中添加 fb_id

  4. 運行遷移命令

  5. 創建 Laravel 身份驗證

  6. 作曲家需要 laravel/社交名流

  7. 打開 config/app.php,在 providers 和 aliases 數組中注冊 socialite 插件

 'providers' => [

     .........

     .........

     Laravel\Socialite\SocialiteServiceProvider::class,

 ],

  'aliases' => [

    .........

    .........

   'Socialite' => Laravel\Socialite\Facades\Socialite::class,

],

創建 Facebook 應用程序。然后在 config/services.php 中添加 client_id 和 client_secret,如下所示。


應用創建鏈接:https ://developers.facebook.com/apps


   return [

         ....

        'facebook' => [

        'client_id' => 'Facebook app id',

        'client_secret' => 'Facebook add secret',

        'redirect' => 'http://localhost:8000/auth/facebook/callback',

       ],

    ]

在 web.php 中創建路由


Route::get('auth/facebook', [SocialController::class, 'facebookRedirect']);

Route::get('auth/facebook/callback', [SocialController::class, 'loginWithFacebook']);

在控制器中


    namespace App\Http\Controllers;

    use Illuminate\Http\Request;    

    use App\Models\User;

    use Validator;

    use Socialite;

    use Auth;



class SocialController extends Controller

 {


  public function facebookRedirect()

  {

      return Socialite::driver('facebook')->redirect();

  }


  public function loginWithFacebook(){

    $user = Socialite::driver('facebook')->stateless()->user();

    $finduser = User::where('fb_id', $user->id)->first();


    if($finduser){

        Auth::login($finduser);

        return redirect('/user-profile');

    }else{

        $newUser = new User();

        $newUser->name      = $user->name;

        $newUser->email     = $user->email;

        $newUser->fb_id     = $user->id;

        $newUser->password  = bcrypt('12345678');

        $newUser->save();

        Auth::login($newUser);

        return redirect('/user-profile');

      }

   }

在登錄頁面添加facebook登錄按鈕


 <a class="btn" href="{{ url('auth/facebook') }}">Login with Facebook</a>

啟動 php artisan serve 并測試


視頻說明: https ://youtu.be/AaFxO2l0N8k


查看完整回答
反對 回復 2022-12-23
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

您缺少將用戶與其社交 ID 鏈接起來的關鍵部分。

這是一個很棒的教程:https ://medium.com/@confidenceiyke/laravel-5-8-facebook-socialite-authentication-8863b9a43f11

該教程還將指導您設置 Facebook 應用程序。


查看完整回答
反對 回復 2022-12-23
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

我自己弄明白了。我正在使用 Laravel 版本 6。

您只需要進行以下 3 項更改:

改變

FACEBOOK_REDIRECT=http://localhost:8000/callback

FACEBOOK_REDIRECT=http://localhost:8000/facebook/callback

然后改變,

Route::get('/redirect', 'SocialAuthFacebookController@redirect');
Route::get('/callback', 'SocialAuthFacebookController@callback');

Route::get('/facebook/redirect', 'SocialAuthFacebookController@redirect');
Route::get('/facebook/callback', 'SocialAuthFacebookController@callback');

最后在登錄視圖更改

<a href="{{url('/redirect')}}" class="btn btn-primary">Login with Facebook</a>

<a href="{{url('/facebook/redirect')}}" class="btn btn-primary">Login with Facebook</a>

參考鏈接:https ://desertebs.com/laravel/laravel-facebook-login-tutorial


查看完整回答
反對 回復 2022-12-23
  • 3 回答
  • 0 關注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號