Laravel会话在类/路由之间有所不同

问题描述

我有两个控制器类,一个用于在会话中保存访问令牌(myController),第二个用于完全不同的目的(secondController)。在获得访问令牌后,在myController类中,我可以成功执行操作,因为acc_token会自动保存到会话中。但是,当我从secondController类使用并调用myController时,会话数据中存储的acc_token不存在

这是一个正在发生的事的快速示例

use App\Http\Controller\myController;

class secondController extends Controller{
    /* CODE */

    public static function create_contact($user){
        $myController= new myController;
        $success = $myController->myFunc($user);

        if ($success) {
            echo 'Succesful operation';
        }else{
            var_dump(session()->all()); // missing acc_token
            echo 'Failed operation,missing acc_token'; // always
        }
    }
}
class myController extends Controller{
    public function __controller(){
        // $this->client stuff...

        // we generate token with auth code
        if( array_key_exists('authorization',$_GET) && $_GET['authorization'] )
        {
            // here I handle authorization code and generate $acc_token...
            // we save token in session
            session(['acc_token' => $acc_token]);
            session()->save();
            // we come back back here
            redirect('/myControllers route');
        }
    }

    public function index(){
        $isset_acctoken = $this->is_acctoken_saved(); // always true
        if ($isset_acctoken) {
            // do API stuff..
        }else{
            // lets redirect user to authorization
        }
    }

    // im calling this from secondController 
    public function myFunc($user){
        $isset_acctoken = $this->is_acctoken_saved(); // always false
        if ($isset_acctoken) {
            // do API stuff..
            return true;
        }else{
            return false; // always returns false
        }
    }

    private function is_acctoken_saved(){
        if(session('acc_token')){
            $this->client->setAccessToken(session('acc_token'));
            return true;
        }

        return false;
    }   
}

我尝试将其添加到我的web.php文件中,但没有区别

Route::group(['middleware' => ['web']],function () {
    Route::get('/1','myController@index');
    Route::post('/2','secondController@index');
});

tldr我的会话在控制器和路由之间是不同的,是的,我是从相同的url /主机进行呼叫

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)