很多APP開發都會要求嵌入一些H5界面,那用戶在APP登陸后嵌套的界面怎么獲得用戶的登陸狀態呢
首先我們APP的后台是PHP開發的,用的CI框架,大致看了一下后端的Cookie和session機制,先簡單說一下,很多APP的同志可能不大了解這一塊。
我們項目是先有的H5,在H5端用戶登錄,后端會生成一個session記錄用戶id以及其它一些用戶數據,然后這個session會被存起來,存儲的鍵是user_id加上部分用戶數據通過一定的變換規則的出來的,而這個鍵就是token,這個token又會被放到Cookie中去,它在Cookie中又有一個鍵固定名稱叫“abc_token”。后面用戶每次訪問他的cookie中就會攜帶這個“abc_token”->token。接口每次收到請求,取到這個token經過反向變換,以及以token為鍵取session成功就得到了當前用戶,及部分用戶數據。
說了這么多后端的東西,接下來就是怎么利用這一套機制。
APP端每次登陸,接口也會返給我們一個token,那我們的這個token就采取和H5端同樣的生成規則。接下來,APP訪問嵌套的H5界面時就強行把這個token塞到cookie中去,名字也叫“abc_token”。后端得到這個token后同樣做反向變換就得到當前的登陸用戶啦,是不是很簡單。
還有就是后端得到當前用戶之后,重新生成以下session,這樣在對應的model代碼什么的都不用改直接從H5端copy過來就好啦。這感覺雖然有一點偷懶,但反正就這么干了