1. 程式人生 > >記錄 laravel session失效問題

記錄 laravel session失效問題

最新在學習laravel,用到了session,因為laravel沒法用$_SESSION 所以只能用框架的session。

貼上程式碼

<?php

namespace App\Http\Controllers;
use App\Http\Requests;
use Request;
use Illuminate\Support\Facades\Session;

class CommonController extends Controller
{
    static function  login(){
        $team_id=Request::input('team_id');
        $uuid=Request::input('uuid');
        $key=Request::input('key');
        if(empty($team_id)){
            $team_id=Session::get('team_id');
        }
        if(empty($uuid)){
            $uuid=Session::get('uuid');
        }
        if(empty($key)){
            $key=Session::get('key');
        }
//        session(['team_id'=>$team_id]);
        Session::put('team_id',$team_id);
        Session::put('uuid',$uuid);
        Session::put('key',$key);
        Session::save();
    }
    public static  function islogin(){
        $team_id=Session::get('team_id');
        $uuid=Session::get('uuid');
        $key=Session::get('key');
        if(!empty($team_id)&&!empty($uuid)){
            if($key != 1234){
                echo "沒有許可權";
                exit;
            }
        }else{
            echo "沒有許可權";
            exit;
        }
    }
}
在當前頁面可以到SESSION,但是跨頁面就失效,以為是AJAX的CSRF驗證問題,查詢試了不是,然後經過打印發現2個SESSION不一致,繼續檢查最後發現是在定義路由的時候沒有定義在同一個分組內所以導致SESSION不一致。

將路由重新定義好了

Route::group(['middleware'=>'web'],function() {
    Route::any('/report/billviews', 'report\[email protected]');
    Route::any('/report/index','report\[email protected]');//把需要用到session的路由請求全部放在web組裡。
    Route::any('/report/countprice', 'report\
[email protected]
'); Route::any('islogin', '[email protected]'); Route::any('login', '[email protected]'); });
還有個坑laravel5.2的session必須要過中介軟體

相關推薦

記錄 laravel session失效問題

最新在學習laravel,用到了session,因為laravel沒法用$_SESSION 所以只能用框架的session。貼上程式碼<?php namespace App\Http\Controllers; use App\Http\Requests; use

laravel session使用 轉自http://blog.csdn.net/angle_hearts/article/details/53923782

com lar new get ssi name sym 存儲 angle use Symfony\Component\HttpFoundation\Session\Session;//存儲session$session = new Session;$session->

Asp.Net程序根目錄下文件夾操作導致Session失效的解決方案

rgs get bject process simple exce cep clas .net 1、配置web.config <system.web> <sessionState mode="StateServer" stateConnectio

Spring 監聽session 失效方法

con eve spring註解 無法 nco clas textutils creat 監聽器 public class SessionCounter implements HttpSessionListener { private static int activ

session失效時間設置

start tom timeout nac clas 代碼 int 時間設置 active session失效時間設置 一、java代碼 request.getSession().setMaxInactiveInterval(1800);/*秒為單位*/

設置session失效時間

需要 all modify tomcat ssi ted int 方式 onf 1. 在web容器中設置(此處以tomcat為例)在tomcat-5.0.28\conf\web.xml中設置,以下是tomcat 5.0中的默認配置:<!-- =============

ajax請求session失效重定向到登錄頁面

ttr == als xmlhttp 操作 var ajax請求 direct 自定義 在ajax請求的頁面引入一個自定義的AjaxRedirect.js的文件 AjaxRedirect.js的代碼如下: $(function(){ $.ajaxSetup({

解決IIS設置多個工作進程中Session失效的問題

OS 進制 註冊表 tcpip session 其中 存在 webconfig tro 利用StateServer實現Session共享 session保存在專門的StateServer中,該種方式,性能損失比sql略好。比inproc據說有10%-15%的性能損失。怎麽使

laravel session redis 設置

isa 數字 redis cli 連接 自動生成文件 折騰 localhost 生成文件 Laravel 在使用 Redis 作為 Session 驅動之前, 需要通過 Composer 安裝 predis/predis 擴展包 (~1.0)。 當然也可以用原生自帶的,具體

設定session失效時間(不使用框架)----使用shiro設定session失效時間(使用shiro框架)

Java設定session失效的時間(不使用框架) 在一般系統登入後,都會設定一個當前session失效的時間,以確保在使用者長時間不與伺服器互動,自動退出登入,銷燬session 具體設定的方法有三種: 1.在web容器中設定(以tomcat為例) 在tomcat-7.0\c

記錄laravel中路由的基本使用

1. 簡述 將使用者的請求轉發給相應的程式進行處理;作用就是建立在url和程式之間的對映;請求型別 get 、post 、put 、patch 、delete 2. 路由控制 (1)基礎路由(get、 post) Route::get('basic1', function(){ &n

laravel Session操作

1. $request->session()->put('key','value');//設定session $request->session()->get('key');//獲取session的值 2. Session::put('key','valu

ajax --- 解決ajax跨域請求導致session失效的問題

起因:http是無狀態的,因此我們通常需要用到cookie以及session來儲存狀態,session是在伺服器端儲存的,會和cookie一起使用,設定了session之後,會發送給瀏覽器一個cookie,這個cookie是session_id,當再次請求的時候瀏覽器會將它傳送給伺服器,以此來找到對應的ses

session失效怎麼從前端框架中重定向到頂部登入頁面

1> 問題,在使用了前端框架後,當session中使用者失效了,登入頁面就會在框架中巢狀顯示出來 2>原因:頁面嵌套了,沒有一個頂層頁面 3>解決:top是js中的關鍵字,在登入頁面加入以下程式碼 <script language="j

跨域(本身域名)導致的session失效

跨域導致session失效是理所當然的,但是為什麼提出該問題 今天遇到一個奇葩問題,使用者提出儲存報錯,後臺看了下日誌,一看,session中沒取到使用者資訊 推測是網路問題,要麼是session失效,讓使用者登出重新登陸,但是登出重新登陸還是不行, 這就奇怪了,按理來說不

IIS6,SESSION失效的解決

ASP(Active Server Pages)技術的Session物件用於儲存使用者在對話期間的私有資訊。當前使用者的Session物件中定義的變數和物件能在頁面之間共享,但是不能為應用中其他使用者所訪問,因此在用ASP開發網路應用程式時,可以利用Session物件儲存和跟蹤使用者的狀態資訊。Sessio

使用第三方支付回撥時SESSION失效的問題

最近使用支付寶api的過程中,遇到了一個問題,完成支付後由支付寶回撥的return_url.php檔案開始,之前儲存使用者登陸資訊的SESSION失效了。百度之後看到一篇帖子寫的頗為清晰,他的方法我並沒能理解,因此找出了適合自己的方法。 1、在付款的表單中新加一個隱藏的in

Spring boot 專案HttpSessionListener用於監聽session失效時移除線上使用者的全域性引數

在專案中會出現使用者不點選登出時間觸發session.invalidate()方法,此時我們就無法確定使用者的實際登入狀態,再次我們使用HttpSessionListener監聽器來管理使用者session失效,進而解決了線上使用者的統計或者全域性引數的控制 值得注意的是: @Se

session失效後重新登入

有的時候使用者登陸網站後,長時間未操作或者其他原因導致,session會話失效,需要重新登陸。如果沒有考慮這一點,對使用者請求只拿ID作為驗證的有求必應的話,情況就不太妙了。所以今天來談談使用者登陸這個行為,為了安全考慮,從使用者登陸的這一刻起,只要涉及個人資訊

關於shiro session失效報錯問題

如果遇到以下錯誤: org.apache.shiro.session.ExpiredSessionException: Session with id [5a8cb52b-e911-4ab7-91