Thinkphp5.0 再進行api介面開發的時候,sesssion再同一個控制器不同的方法是無法獲取session的。
阿新 • • 發佈:2019-02-16
之前用thinkPHP5開發介面的時候,碰到這麼一個問題,用瀏覽器測試的api再用postman或者是指令碼去訪問就會出現重新登入的問題,後來看了一下session裡面的內容,發現指令碼和postman沒有辦法訪問到對應的session,這樣就很難受,最後經過大佬指點,才知道了thinkPHP5裡面的session就是給瀏覽器用的,非瀏覽器的方式是沒有辦法訪問到那個session的,只能用cache的方式來代替session,僅此做一個記錄。
第一種:show方法是設定session,user是獲取session。這樣寫user方法在瀏覽器是可以獲取到session的,但是通過ajax是無法獲取的。
第一種:這個方式瀏覽器可以獲取到session,但是ajax卻獲取不到
public function show()
{
Session("phone","18201025114");
}
public function user()
{
exit(Session("phone"));
}
第二種:完美替代session解決方案,
public function showac()
{
exit(Cache::get('phone'));
}
public function user()
{
Cache::set('phone','182010251',3600 );
exit(Cache::get('phone'));
}
第三種:完美替代session解決方案,存到資料庫、memcache等都是可以的。