关于微信的openid绑定已有会员并自动登录。

xzz111 2015-07-02 04:42:24
看到一些公众号普遍的做法是在自定义菜单上做一个静默授权获取到当前的openid再转发给目标页面(比如我的订单),如果在数据库中查到此openid与已有的某个会员绑定了,便自动登录。
对于这个场景,有一个地方鄙人想了许久都想不通,就是目标页面(也就是处理请求的控制器)收到这个openid后,是如何判断【这个openid就是他自己】的?
比如:www.**hotel.com/myorders?openid=&^&*%(&%*& ,我复制这个地址用另外的一个手机微信端打开,如何判断出这个请求已不是原来的人发出的?
...全文
22265 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主,问题你解决吗
weixin_39980828 2017-11-20
  • 打赏
  • 举报
回复
楼主,问题你解决吗
  • 打赏
  • 举报
回复
当然是放session中。
Phil_Jing 2016-12-29
  • 打赏
  • 举报
回复
http://blog.csdn.net/phil_jing/article/details/53914588这个我已经实现了
wyx100 2016-12-20
  • 打赏
  • 举报
回复
http://www.cnblogs.com/utubon/p/4100121.html
魔咒 2016-09-22
  • 打赏
  • 举报
回复
引用 9 楼 xzz111 的回复:
自我终结:我之前的思想有误,openid不用传递。在静默授权获取openid之后直接放入session,当前会话便是使用者本人了。
到底是session还是cookie啊?
xzz111 2015-08-10
  • 打赏
  • 举报
回复
自我终结:我之前的思想有误,openid不用传递。在静默授权获取openid之后直接放入session,当前会话便是使用者本人了。
悲鸣秋 2015-08-05
  • 打赏
  • 举报
回复
应该是保存到 cookie中做自动登录吧。 用户在微信中登录过一次后。获取openid 保存到cookie中。。下次登录就根据cookie中的值。判断登录
gzm 2015-08-04
  • 打赏
  • 举报
回复
通过openId获得到会员信息后一般会保存个userid, 就算是传过来的openid,如果openid和userid不能同时匹配也不能查询出来。比如Sql语句就是 select * from order where userid=123 and openid=xxxx
xzz111 2015-07-06
  • 打赏
  • 举报
回复
引用 5 楼 yaoquanrui 的回复:
这个openid对于用户来说是唯一的。我们只需要将openid关联到用户id上。查询出来就可以了。查出来说明绑定了。没查出来说明没绑定
现在问题是如何得知这个openid是这个请求的真正发起者,而不是别人将url复制访问的。
yaoquanrui 2015-07-03
  • 打赏
  • 举报
回复
这个openid对于用户来说是唯一的。我们只需要将openid关联到用户id上。查询出来就可以了。查出来说明绑定了。没查出来说明没绑定
xzz111 2015-07-02
  • 打赏
  • 举报
回复
引用 3 楼 longtian1213 的回复:
[quote=引用 2 楼 xzz111 的回复:] [quote=引用 1 楼 longtian1213 的回复:] 微信是传一个code给你,你通过那个code去获取openid,而且那个code只能使用一次,五分钟有效,像你这样直接传openId是没法判断的
这我知道呀,我已经是静默授权获取到openid了,现在就是传openid的时候不知道应该怎么做。。我看7天酒店就是这样搞的,点击预订,然后静默获取openid放到url直接带给页面做了登录,但是我复制这个url去别的浏览器都无法登录。。[/quote] 你可以看下公众号文档关于网页授权获取用户基本信息那章[/quote] 这对我的问题没有帮助啊,我已经通过code获取到access_token,并且拿access_token获取到了openid
S117 2015-07-02
  • 打赏
  • 举报
回复
引用 2 楼 xzz111 的回复:
[quote=引用 1 楼 longtian1213 的回复:] 微信是传一个code给你,你通过那个code去获取openid,而且那个code只能使用一次,五分钟有效,像你这样直接传openId是没法判断的
这我知道呀,我已经是静默授权获取到openid了,现在就是传openid的时候不知道应该怎么做。。我看7天酒店就是这样搞的,点击预订,然后静默获取openid放到url直接带给页面做了登录,但是我复制这个url去别的浏览器都无法登录。。[/quote] 你可以看下公众号文档关于网页授权获取用户基本信息那章
xzz111 2015-07-02
  • 打赏
  • 举报
回复
引用 1 楼 longtian1213 的回复:
微信是传一个code给你,你通过那个code去获取openid,而且那个code只能使用一次,五分钟有效,像你这样直接传openId是没法判断的
这我知道呀,我已经是静默授权获取到openid了,现在就是传openid的时候不知道应该怎么做。。我看7天酒店就是这样搞的,点击预订,然后静默获取openid放到url直接带给页面做了登录,但是我复制这个url去别的浏览器都无法登录。。
S117 2015-07-02
  • 打赏
  • 举报
回复
微信是传一个code给你,你通过那个code去获取openid,而且那个code只能使用一次,五分钟有效,像你这样直接传openId是没法判断的
运行环境】:环境php5.4、MYSQL5.6 所有文件以及代码请勿使用记事本修改,否则返回值可能乱码 1、采用安装方式安装系统,更方便 2、编辑用户可编辑VIP时间(由用户fdsfa提供) 3、增加了一个主页面 4、后台账号/密码:admin 【注册】:/api.php?action=register POST提交: user=账号 password=密码 superpass=超级密码 inv=邀请人ID markcode=机器码 返回: 101:账号为空 102:密码为空 103:超级密码为空 104:机器码为空 105:账号已存在 106:该IP已注册 107:该机器码已注册 1005:邀请人不存在 200:成功 【登入】:/api.php?action=login POST提交: user=账号 password=密码 markcode=机器码 返回值: 101:账号为空 102:密码为空 104:机器码为空 110:账号密码有误 108:机器码不匹配 112:禁止登陆 登入成功会已json数据 用户ID、用户账号、用户头像、用户名字、VIP、token 【微信登入、注册】:/api.php?action=wx_login post提交数据: openid=微信openid access_token=微信access_token inv=邀请人ID markcode=机器码 系统会自动判读这个微信是否已经注册了账号 返回值: 104:机器码为空 106:该IP已注册 107:该机器码已注册 112:禁止登陆 1001:微信openid为空 1002:微信access_token为空 1003:错误的身份信息 1004:微信openid有误 1005:邀请人不存在 登入或注册成功后会返回:用户ID、用户账号、用户头像、用户名字、VIP、token 【刷新用户信息】:/api.php?action=getinfo POST提交:token 返回值: 150:token为空 151:token已失效或不存在或不正确 112:账号已禁用 一切正常返回用户信息的json数据 用户ID、已邀请用户数、账号、头像、名称、微信openid、VIP、积分、机器码 【会员验证】:/api.php?action=getvip POST提交:token 返回值: 150:token不能为空 112:禁止登陆 151:token有误 200:VIP真 201:VIP假 【签到】:/api.php?action=diary post提交数据:token 返回值: 112:禁止登陆 150:token不能为空 151:token不存在 171:今天已经签到过了 172:签到功能未开启 173:签到失败,请重试 200:签到成功 【卡密充值】:api.php?action=checkkami POST提交:token,kami 返回值:150:token为空 130:卡密为空 131:卡密有误 132:卡密已被使用 151:token已过期 134:已是永久会员 135:使用失败 200:成功 【绑定微信】:api.php?action=wx_bind POST提交:token,openid,access_token 返回值: 150:token为空 151:token不正确 200:绑定成功 1001:微信openid为空 1002:微信access_token为空 1003:错误的身份信息 1004:微信openid有误 1006:该微信绑定其他账号 1007:你已经绑定微信了 1008:绑定失败 【设置账号密码】:/api.php?action=alteruser(微信用户专用) POST提交: token=登入状态 user=账号 password=密码 superpass=超级密码 返回值: 101:账号为空 102:密码为空 103:超级密码为空 105:账号已存在 109:账号不支持中文,且长度不得少于5不得大于11 150:token为空 151:token有误 180:每个用户只能修改一次 181:修改失败 200:修改成功 【修改名称】:/api.php?action=altername POST提交: token=登入状态 name=新的名称 返回值: 101:账号为空 150:token为空 130:名称为空 151:token已失效或不存在或错误 200:成功 【修改头像】: E4A 接口:/api.php?action=alterpic&token;=【token】&type=e4a 蓝鸟接口:/api.php?
微信小程序学生选课系统app设计后端SSM可升级SpringBoot毕业源码案例设计 开发技术:微信小程序客户端 + Java后台服务器端 + mysql数据库 项目一共2个身份,管理员和学生身份。小程序客户端学生打开后可以查看教师风采信息,查询课程信息并且选课,首页可以查询校园新闻公告;学生想要查询自己的成绩和已选课程需要先绑定自己的学号密码就可以了!学生也可以对已经选好的课程进行退选;管理员在web端发布管理班级信息,学生信息,教师信息,课程信息,成绩信息,新闻信息!其中学生对于已经选择的课程,如果再重复选课不会成功,然后管理员登记学生成绩,如果学生没有选这门课程或者已经添加过成绩了,也有逻辑判断,不用担心造成数据的重复添加哈! 实体ER属性: 班级信息: 班级编号,班级名称,所属专业,成立日期,班主任,联系电话,附加信息 学生信息: 学号,姓名,密码,性别,所在班级,出生日期,政治面貌,学生照片,联系电话,学生邮箱,联系qq,家庭地址,附加信息,微信openid 教师信息: 教师编号,教师姓名,性别,出生日期,入职日期,身份证号,联系电话,教师照片,家庭地址,附加信息 课程信息: 课程编号,课程名称,上课老师,上课时间,上课地点,课程学分,附加信息 学生选课: 记录id,选课学生,选择课程,选课时间 成绩信息: 记录编号,学生,课程,成绩得分,学生评价 新闻信息: 记录编号,新闻标题,新闻内容,发布日期,新闻图片 -------- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧