繁体   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