摘要:详情接口我们这里主要讲的是网站应用,网站应用微信登录是基于协议标准构建的微信授权登录系统即上面的协议。在微信客户端授权登录获取用户信息的可以查看。微信授权登录目前支持模式,适用于拥有端的应用授权。
一、OAuth2.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。
二、准备工作我们这里主要模拟使用OAuth2.0,用户通过扫描我们网页应用的二维码并进行授权登录来获取用户的基本信息的过程。 详情接口:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN 我们这里主要讲的是网站(Web)应用,网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统(即上面的协议)。在微信客户端授权登录(获取用户信息)的可以查看:http://www.cnblogs.com/0201zcr/p/5131602.html。在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。三、注册开发者账号
提交审核即可,等微信审核通过,我们即可获得我们需要的网页应用的appid和AppSecret,并配置后回调的域名了(这三样是我们开发所必须的)。四、授权流程
微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。
微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。该模式整体流程为:
1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数; 2. 通过code参数加上AppID和AppSecret等,通过API换取access_token; 3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。五、获取网页的二维码
当我们通过微信的认证,获取到了appid和AppSecret,并配置了回调的域名。我们就已经可以获取属于我们网页的二维码了,获取的方式很简单,只需打开一个微信的链接,加上我们的appid和回调域名即可在网页上面打开二维码,用户用微信客户端扫码并授权登录之后即会跳转到我们配置的回调域名下。注意:
1、这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头; 2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权六、请求url说明
第三方使用网站应用授权登录前请注意已获取相应网页授权作用域(scope=snsapi_login),则可以通过在PC端打开以下链接:
https://open.weixin.qq.com/co...
返回说明
用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数
若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数
假如前面已经获得code。我们可以通过code参数去获取用户openid和access_token,进而获得用户的信息。
通过code参数获取access_token
https://api.weixin.qq.com/sns...
参数说明
参数 是否必须 说明 appid 是 应用唯一标识,在微信开放平台提交应用审核通过后获得 secret 是 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得 code 是 填写第一步获取的code参数 grant_type 是 填authorization_code七、(附)通过access_token获取用户的基本信息
获取的前提条件
access_token有效且为超时; 微信用户已授权给第三方应用账号相应接口作用域(scope)【在二维码生成连接那里填写】
参数 说明 openid 普通用户的标识,对当前开发者帐号唯一 nickname 普通用户昵称 sex 普通用户性别,1为男性,2为女性 province 普通用户个人资料填写的省份 city 普通用户个人资料填写的城市 country 国家,如中国为CN headimgurl 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空 privilege 用户特权信息,json数组,如微信沃卡用户为(chinaunicom) unionid 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。写在最后
最近在鼓捣微信开发,整理了一些笔记,整个思路走下来 涉及不少后台的知识,还需努力学习,希望分享的东西可以对大家有所帮助
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99221.html
摘要:最近公司端网站登录改版,新增加微信扫码登录。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。再看文档微信文档就是这个属性上方的,就可以引用咱们自己写的文件。 最近公司PC端网站登录改版,新增加微信扫码登录。文档微信扫码登录文档。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。 showImg(https://segmentfault.com/img/bVXj...
摘要:最近公司端网站登录改版,新增加微信扫码登录。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。再看文档微信文档就是这个属性上方的,就可以引用咱们自己写的文件。 最近公司PC端网站登录改版,新增加微信扫码登录。文档微信扫码登录文档。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。 showImg(https://segmentfault.com/img/bVXj...
摘要:随着微信的普及,扫码登录方式越来越被现在的应用所使用。这里基于微信公众平台的带参数临时二维码,并且结合的服务实现扫码登录。对于用户扫临时的二维码,微信会触发相应的回调事件,我们需要在该回调事件中处理用户的扫码行为。 随着微信的普及,扫码登录方式越来越被现在的应用所使用。它因为不用去记住密码,只要有微信号即可方便快捷登录。微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众...
阅读 1438·2021-11-11 16:54
阅读 9316·2021-11-02 14:44
阅读 2371·2021-10-22 09:53
阅读 3259·2019-08-30 11:18
阅读 1950·2019-08-29 13:29
阅读 2002·2019-08-27 10:58
阅读 1622·2019-08-26 11:38
阅读 3517·2019-08-26 10:31