![](/img/trans.png)
[英]Laravel socalite - handleProviderCallback is never triggered
[英]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.