聯(lián)系官方銷售客服
1835022288
028-61286886
做一個簡單的公眾號獲取用戶openid創(chuàng)建賬號的功能,其中用到cms的
\Phpcmf\Service::C()->session()->get('變量名稱');
\Phpcmf\Service::L('cache')->set_data("緩存名稱", "緩存變量值,支持數(shù)組", "緩存有效期,單位秒");
session和緩存功能,把access_token存到緩存里,用session來存用戶信息。
測試的時候出現(xiàn)問題,在一臺手機上登錄創(chuàng)建賬號成功后,在電腦上用網(wǎng)頁打開頁面,會讀取到手機上緩存的cache和session文件。
手機訪問時用“\Phpcmf\Service::C()->session()->set('userinfo',$str);”存賬號數(shù)據(jù),然后電腦端訪問用“\Phpcmf\Service::C()->session()->get('userinfo');”會取到手機上賬號的信息,這樣子直接存取session就會讀取混亂沒有隔離,開發(fā)文檔里只寫了存取和刪除,怎么解決這個問題?
http://223987.com/doc/835.html
回復(fù)@官方研發(fā)技術(shù)-羅老師 默認24小時過期,設(shè)置時也不能選擇過期時間嗎,不需要這么頻繁更新用戶信息。
而且一般都是用session來判斷是否登錄的吧,這種不同端讀取到同一個session文件的問題就很奇怪。
那就用一的,固定緩存,
session的作用域你并不了解
回復(fù)@官方研發(fā)技術(shù)-羅老師 固定緩存我也用過了,用來存access_token,但還是那個問題,在手機端打開頁面,獲取用戶信息時調(diào)用 \Phpcmf\Service::L('cache')->set_data("Accesstoken", $access_token); 來存下數(shù)據(jù)。
然后在電腦端打開頁面,理論上是應(yīng)該重新獲取數(shù)據(jù),但是 \Phpcmf\Service::L('cache')->get_data("Accesstoken"); 會取到手機端存的數(shù)據(jù),導(dǎo)致信息混亂了。
我疑惑的是這既然是框架封裝好的方法,那么我直接調(diào)用,為什么沒有隔離導(dǎo)致了讀取混亂。
回復(fù)@小波工作室 所以我很奇怪啊,這是框架封裝好的方法,按理說直接來用就可以了,但實際上就是會出現(xiàn)不同端讀取到同一個緩存文件的問題。
回復(fù)@小波工作室 額,不使用session的話,那要用什么來做判斷呢?