问题描述
我有两个控制器类,一个用于在会话中保存访问令牌(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 (将#修改为@)