![](/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.