之前已经:
已经可以微信网页授权了
可以获取用户基本信息了
现在想要去搞清楚:
微信公众号 如何保持登录
微信公众号开发,如何使用户保持登录状态 – 云贤力的回答 – SegmentFault
-》获取了openid,就是认为已经登录了?
“方法1:将微信号认证一下,使用OAuth接口,每次进入之前通过接口获取到用户的openid,然后再从你的数据库去读取关系,写入用户登录状态。
方法2:用户点击菜单或者发送关键词是可以获取到用户的openid的,此时返回一个链接或图文消息,用户点击之后用get方式获取到openid,然后再从你的数据库去读取关系,写入用户登录状态。”
javascript – 微信公众号开发,如何使用户保持登录状态 – SegmentFault
“
用户将openid与业务帐号绑定一次,如何实现用户一直处于登录状态?更换手机后?
- 方法1:将微信号认证一下,使用OAuth接口,每次进入之前通过接口获取到用户的openid,然后再从你的数据库去读取关系,写入用户登录状态。
- 方法2:用户点击菜单或者发送关键词是可以获取到用户的openid的,此时返回一个链接或图文消息,用户点击之后用get方式获取到openid,然后再从你的数据库去读取关系,写入用户登录状态。
商业产品正式使用推荐方法1。
个人做着玩玩的话推荐方法2。
用于网页授权用户信息的access_token是怎么缓存和维护的?存储在seesion吗?
用于网页授权用户信息的access_token是必须要进行缓存的,这个每日有接口频率限制,所以你必须缓存这个。
存在Memcache或redis等缓存服务,或者……你存到某个文件也行。
session一般是用来做用户会话,放到这里不保证可用,或者说这么做很奇怪。其他朋友补充下吧。
微信中session会话什么时候会失效?(比如PC端关闭浏览器)
微信的session和PC没关系啊。。
session什么时候过期这个说不来,和你服务器设置和微信自己都有关系吧我觉得。
cookie的话微信有一种很奇怪的过期方式,在很久以前的旧版本里很无厘头,经常是关了窗口就关了。
第1个问题:openid与业务账号绑定,这个和用户是否一直处理登录状态有什么关联吗?openid账号与每个微信公众号是唯一对应关系的,哪怕你取消关注后,再次关注,这个用户的微信号与你的公众号之间的openid也是不变的。
第2个问题:access_token有很多种方式可以缓存和维护,我通常会优先使用memcache(例如sinaapp开发,为key设置一个过期时间,小于微信的7200),或是xml文件,甚至有些网站会使用数据库。
第3个问题:微信公众号接口是无状态的会话,不存在session状态。如果是指自己开发的网站在微信中打开的session,失效就是你关闭网页时。
但这种情况会因为你手机对微信驻留后台的允许或禁止影响,例如你本来未关闭网页,但是你将微信窗口缩到后台,结果被安全软件把进程清理了,这时候也会失效。
其实楼主是想问用户绑定账号以后,让用户一直处于登录状态。
这里好像没有好的办法的。会话是无状态的,如果想让用户感觉着是一直登录状态,中间还得于微信系统进行一次交互才可以,在自定义菜单上可以通过自动回复关键字来实现这一点,其它没有找到好的解决办法,不交互你是根本无法知道用户是谁的
微信登录(所有的第三方登录)都不存在登录状态,获取用户信息都是要通过接口传递openid。(具体可以看看auth2.0)。
access_token 要保存到数据库,而不是session。可以用refresh_token 来刷新access_token(授权成功只会会同时给access_token 和refresh_token)。
你先需要理清楚登录的流程。
”
[总结]
目前的考虑:
好像access_token,是需要保存到数据库的,总之是要有效维护才可以
并且要注意:
网页授权后的access_token和全局的access_token是不一样的。
转载请注明:在路上 » [基本解决]尝试去搞清楚微信网页授权后如何保持用户登录状态