第三方网站实现绑定微信登陆

最近在公司负责一个ROR项目,基于Rabel的论坛产品,老板想把这个产品植入微信,让我做微信绑定登陆。微信开发文档还是很不错的,折腾了几天,把这个功能拿下了。

微信获取用户资料文档:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

如何获取用户资料我就不赘述了,文档上说明很清楚,我主要说说实现微信绑定与登陆的思路。

要点包括但不限于:

  • 保存用户的数据表Person中,添加字段weixin_openid,用于保存微信与公众号唯一的用户标识
  • 在服务端实现URL跳转时保留查询字符串的功能,具体例子如
    • 未登录用户访问/home?code=123456,此时应跳转到/login?code=123456,而非/login
  • 登陆页面有三种形式
    • 最原始的用户密码登陆。此形式将不包含查询字符串

      • 此时输入用户密码登陆
    • 已绑定微信的用户快捷登陆方式。此形式会包含查询字符串?code=123456
      • 此时服务器端利用code获取openid,若成功找到绑定的用户,直接登陆
    • 一个用户想要进行微信绑定,点击绑定入口后,由于未登录而跳转到的登陆页面。此形式会包含查询字符串?code=123456&state=bind
      • 服务端检测到state=bind,得知是绑定操作,暂时不去获取openid,待用户登陆跳转后,再去获取openid进行绑定。(这就是第二点保留字符串跳转的作用)
  • 鲁棒性,包括
    • 查询字符串错误或缺失的处理
    • 微信绑定的逻辑性处理,例如一个微信只能绑定一个账号,一个账号只能绑定一个微信,不能重复绑定

附一个当时做的微信绑定的流程图

http://www.cnblogs.com/qs20199/p/4576479.html

时间: 2025-01-11 13:20:39

第三方网站实现绑定微信登陆的相关文章

第三方网站不能调用微信公众平台里的图片了 显示"此图片来自微信公众号平台未经允许不可引用"

下午ytkah在自己小博客搜索时看到有几篇文章图片显示不了,再访问一些网站时发现有些图片无法显示出来,显示"此图片来自微信公众号平台未经允许不可引用",如下图所示,这个应该是最近微信团队对有原创保护能力的公众帐号又一举措. 是不是有点似曾相识?没错,第三方网站调用QQ空间里面的图片也是不能完整显示,提示“此图片来自QQ空间,未经允许不可引用”. 其实,腾讯这些措施应该也是无赖之举,微信公众平台已有近800万公众号入驻了,很多公众号的单篇图文消息都超过了10+阅读量,可以想象整个公众平台

uni-app关于小程序及app端第三方微信登陆问题

1.第一次做第三方微信登陆,所以在这方面话太多时间了,主要是在获取code的时候感觉头痛,uni-app没有说明如何获取code,后来在网上搜索诸多信息后终于解决了问题 uni-app在app端第三方微信登陆时要获取code再传给后端,后端根据code向微信发送登陆请求: // #ifdef APP-PLUS login() { var it=this; var getAppid = plus.runtime.appid; console.log('app端登陆') uni.login({ pr

UnionID和微信登陆

微信同时开放微信登陆功能的内测和UnionID机制,很多人还不知具体情况,我解释下: 微信登陆功能,拥有微信支付权限的移动应用(App和游戏)和网站,可以申请微信登陆权限.这在我们玩微信游戏时就可以体验到微信登陆功能,在此之前微信登陆功能只开放给"国家队",从现在开始也会逐渐开放给其他第三方移动应用和网站. UnionID机制,官方的解释是: "通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通过UnionID机

使用ShareSDK完成第三方(QQ、微信、微博)登录和分享

这几天遇到一个需求:做第三方登录和分享.遇到了一些坑,把整个过程整理记录下来,方便他人,同时也捋一下思路. 当时考虑过把每个平台的SDK下载下来,一个一个弄,一番取舍后决定还是用ShareSDK.这里只做了微博.微信和QQ.过程如下: 1.去ShareSDK官网注册一个账号方便以后对ShareSDK的配置. 2.按照集成文档的步骤开始做,不得不说这个集成文档里面有坑,有坑的地方我会指出. 文档中心 3.添加一个应用.有很多种方式可以添加一个应用,多点点.这里我创建了一个test应用. 添加应用

Discuss!X3.2 绑定微信

完整程序 http://pan.baidu.com/s/1jGL5veQ 密码kgga Discuz!X3.2 在继承和完善 Discuz!X3.1 的基础上,针对社区移动端进行了新的尝试.新版本主要有两大特性:1.支持微信登录:2.将PC论坛与移动端的微社区数据全面打通.对于处在转型瓶颈的站长而言,这两大特性或将成为向移动化转型的突破口. 结合以上两大特性,经实际安装测试,我认为此次版本更新对于站长而言,有如下3个值得关注和期待之处: 1.支持微信登录.如同PC端的QQ登录一样,随着微信用户群

微信登陆,微信SDK授权登陆经验分享

From:http://www.eoeandroid.com/thread-547012-1-1.html 最近因为项目需要做了微信登陆,好像也是微信最近才放出来的接口.还需要申请才能有权限实现授权.其实也比较简单,跟新浪微博和qq授权登陆差不多.不过还是有点差别,不知道是微信sdk本身就没有完善还是其他问题.会有一点蛋疼的地方,下面会细说.(由于等级不够,不能发在经验分享区,只能先写在这里了.希望对要做微信登陆的朋友有帮助,如果有不对的地方还希望大家直言不讳)<ignore_js_op> 首

Discuz无法通过微信登陆

由于discuz更新到了x3.2,最近很多使用discuz的用户反映,在论坛网站上安装了微信这个插件后,却无法登陆,绑定微信号和无法通过扫面登陆微社区等现象. 很多原因要么是因为用户自己没有认证服务号的却选择了认证服务号项,要么就是有认证服务号的却选择了未认证服务号的选项.基本都是操作上的失误导致. 解决方法很简单: 如果你没有安装微信插件,请你先安装. 首先登陆网站后台——开通微社区——应用——微信登陆——微信设置: 注意在公众号类型设置这里,如果你是没有认证服务号的,请一定选择“无公众号/订

Android开发中微信登陆

关于android开发中的微信登陆,除了使用shareSDK,我们使用腾讯开发者平台上提供的SDK,按照官网步骤实现第三方登陆的功能. 微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权.该模式整体流程为: 1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过API换取access_tok

Discuz无法通过微信登陆怎么处理?

由于discuz更新到了x3.2,最近很多使用discuz的用户反映,在论坛网站上安装了微信这个插件后,却无法登陆,绑定微信号和无法通过扫面登陆微社区等现象. 很多原因要么是因为用户自己没有认证服务号的却选择了认证服务号项,要么就是有认证服务号的却选择了未认证服务号的选项.基本都是操作上的失误导致. 解决方法很简单: 如果你没有安装微信插件,请你先安装. 首先登陆网站后台——开通微社区——应用——微信登陆——微信设置: 注意在公众号类型设置这里,如果你是没有认证服务号的,请一定选择“无公众号/订