python微信登录失效_[基本解决]尝试去搞清楚微信网页授权后如何保持用户登录状态...

之前已经:

已经可以微信网页授权了

可以获取用户基本信息了

现在想要去搞清楚:

微信公众号 如何保持登录

-》获取了openid,就是认为已经登录了?

“方法1:将微信号认证一下,使用OAuth接口,每次进入之前通过接口获取到用户的openid,然后再从你的数据库去读取关系,写入用户登录状态。

方法2:用户点击菜单或者发送关键词是可以获取到用户的openid的,此时返回一个链接或图文消息,用户点击之后用get方式获取到openid,然后再从你的数据库去读取关系,写入用户登录状态。”

“用户将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是不一样的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值