很多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过来就好啦。这感觉虽然有一点偷懒,但反正就这么干了