簡體   English   中英

Laravel Socialite - handleProviderCallback() 方法未顯示存儲的會話

[英]Laravel Socialite - handleProviderCallback() method not showing stored session

我正在嘗試將 Socialite 集成到我的 Laravel 項目中。 我試圖在buyerSignup.blade.php 文件中存儲一個會話,然后嘗試在Socialite 的handleProviderCallback() 方法中獲取該會話值。 但它沒有顯示任何價值不知道為什么。 盡管另一個方法 redirectToProvider() 顯示了會話值。

我需要 handleProviderCallback() 方法中的會話值來處理它並根據會話的值采取行動。 下面是我正在使用的實際代碼。

在buyerSignup.blade.php 中存儲會話值

@php

\Session::put('buyerSignupFb','true');

@endphp

試圖在 LoginController 的 handleProviderCallback() 方法中獲取上述存儲的值。

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Auth;
use App\sellerData;
use App\buyerData;
use App\sellerDealCat;
use App\subCatData;
use App\Session;
use App\User;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\DB;
use Socialite;

class LoginController extends Controller
{

  use AuthenticatesUsers;

 protected $redirectTo = '/home';

 public function __construct()
    {
        $this->middleware('guest')->except('logout');
        $this->middleware('guest:seller')->except('logout');
        $this->middleware('guest:buyer')->except('logout');

    }


public function redirectToProvider()

{

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


}

public function handleProviderCallback()
{

//cant get the value of the session defined in buyerSignup.blade.php
// echo doesn't work too

return \Session()->get('buyerSignupFb');


}

}

任何建議我做錯了什么或如何使它工作。 TIA

你做得很好,但還不夠,首先你設置一個重定向提供者

public function redirectToProvider()

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

很好,當用戶允許訪問他的令牌時,您需要在handleProviderCallback()處理回調, handleProviderCallback()需要將用戶auth code交換auth code訪問acces token 所有這些社交名媛都是自動制作的,你需要的所有東西都可以稱之為

public function handleProviderCallback()
{
    $externalUser = Socialite::driver('facebook')->stateless()->user();

\\check if user exists, if not create

    $auth->login($user, true);

    if ($user->type = 'seller'){$this->redirectTo = '/forSellers'} else {$this->redirectTo = '/forOtherGroup'}

    return redirect($this->redirectPath());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM