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