QQ个性网:专注于分享免费的QQ个性内容

关于我们|网站公告|广告服务|联系我们| 网站地图

搜索
微信分类

微信隐身昵称代码-微信授权登录图片大小

日期:2023/06/29 16:16作者:佚名人气:

导读:AppID和AppSecret一起使用可调用公众号的接口能力;即当你的开发过程中有使用微信相关功能时,必须有在微信公众平台官方认证过的账号密码。小程序获取微信登录授权[小程序接入微信登录开发文档]()小程序获取微信登录授权时序图如下图所示:!...

# 1.几个概念介绍**AppID:**开发者ID,有些叫AppKey;**AppSecret:**开发者密码; AppID和AppSecret一起使用可调用公众号的接口能力;即当你的开发过程中有使用微信相关功能时,必须有在微信公众平台官方认证过的账号密码。**OpenID:**为了识别用户,每个用户针对每个公众号或小程序等应用会产生一个安全的OpenID,公众号或应用可将此ID进行存储,便于用户下次登录时辨识其身份,或将其与用户在第三方应用中的原有账号进行绑定。# 2.H5页面获取微信登录授权[参考资料]([]())如果用户在微信客户端中访问第三方网页(H5)或小程序,那么第三方网页需要通过微信网页的授权机制,来获取用户的基本信息,进而实现业务逻辑。H5页面获取用户授权登录的方式分为两种,一种是显式授权登录,一种是静默的授权登录。通过获取code时scope的值来决定选用哪种方式。**显示授权登录:**snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注微信隐身昵称代码,就可在授权后获取该用户的基本信息。**静默的授权登录:**snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。

微信授权登录图片大小_微信隐身昵称代码_微信网页登录授权页面

用户感知的就是直接进入了回调页(往往是业务页面)## 2.1获取微信登录授权前的说明(1)在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 等协议头;(2)授权回调域名配置规范为全域名,比如需要网页授权的域名为:,配置以后此域名下面的页面 、 都可以进行OAuth2.0鉴权。但 、 、 无法进行OAuth2.0鉴权。## 2.2 获取微信登录授权流程H5页面接入微信登录授权过程包括如下过程:(1)在H5页面中请求微信公众平台,获取code(2)使用code换取access_token和openId(3)使用access_token和openId拉取用户信息(需要**scope=snsapi_userinfo**)![H5页面获取微信登录授权时序图](%7CimageView2/2/w/1240)根据上图描述,下面对各个流程进行详细说明。**(1)获取code的过程**加载H5页面时,判断code是否存在,如果不存在,则请求微信平台获取code。

微信网页登录授权页面_微信隐身昵称代码_微信授权登录图片大小

请求地址为```#wechat_redirect#这里将redirect_uri配置为当前H5页面参考链接(请在微信客户端中打开此链接体验):scope为snsapi_base%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirectscope为snsapi_userinfo%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect```该请求的参数描述如下表所示:![请求code参数说明](%7CimageView2/2/w/1240)请求成功时,微信平台会回调reirect_uri配置的地址,并将code追加到路径上。

微信授权登录图片大小_微信网页登录授权页面_微信隐身昵称代码

格式为:redirect_uri?code=xxx。***特别注意:*** ①由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问 ②跳转回调redirect_uri,应当使用https链接来确保授权code的安全性**H5页面示例代码如下:**``` ```**(2)获取access_token和openId**获取access_token和openId,需要使用code、appid、appSecret三个参数请求微信平台获取。由于appSecret需要保密,所以该过程放到业务后台去执行。业务后台提供http接口,接收code参数。接口的内部逻辑是:**1.先请求微信平台(GET请求),请求地址为,请求参数如下:** ```参数是否必须说明appid是公众号的唯一标识secret是公众号的appsecretcode是填写第一步获取的code参数grant_type是填写为authorization_code```返回结果如下所示:```{ "access_token":"ACCESS_TOKEN",//网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同 "expires_in":7200,//access_token接口调用凭证超时时间,单位(秒) "refresh_token":"REFRESH_TOKEN",//用户刷新access_token "openid":"OPENID",//用户唯一标识,请注意,在未关注公众号时微信隐身昵称代码,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID "scope":"SCOPE" //用户授权的作用域,使用逗号(,)分隔}```**2.获取微信平台用户信息(本示例不需要该过程)****3.获取业务平台的用户信息**示例代码如下:**对外提供获取openId和access_token接口,用于H5页面调用**```@RestController@RequestMapping("front/user")public class UserController{@Autowiredprivate IUserService userService;/** * @param code * @return */@PostMapping("regiestUserForOfficial")public Object regiestUserForOfficial(String code) {if(code == null || "".equals(code))return "请上传code!";return userService.regiestForOfficial(code);}}```**userService的regiestForOfficial方法**```@Override@Transactional(rollbackFor = Exception.class)public ResultData regiestForOfficial(String code) {String openid = new String();try {// 获取openid 判断是否已经认证openid = WXUtil.getOpenIdForOfficialPay(code);if (StringUtils.isBlank(openid)) {return ResultData.error("没有被认证");}} catch (Exception e) {e.printStackTrace();return ResultData.error("没有被认证");}//查询业务数据库中用户信息...return openId;}```**WXUtil.getOpenIdForOfficialPay方法的实现**```public class WXUtil {private final static String officialAuthUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=xxx&secret=xxxxxxxxxx";public static String getOpenIdForOfficialPay(String code){if(ObjectUtil.isEmpty(code)){System.out.println("【getOpenIdForOfficialPay】:code 为空");throw new MyException();}String url = officialAuthUrl +"&code="+code+"&grant_type=authorization_code";Object result = HttpContenUtil.getURLGetContent(url);@SuppressWarnings("unchecked")Map res = (Map) JSONObject.parse(result.toString());return ObjectUtil.isEmpty(res)?null:res.containsKey("openid")?res.get("openid").toString():null;}}```**HttpContenUtil.getURLGetContent方法实现**```public class HttpContenUtil {/*get方法访问*/public static Object getURLGetContent(String urlStr) {/** 网络的url地址 */URL url = null;/** http连接 */// HttpURLConnection httpConn = null;/**//** 输入流 */BufferedReader in = null;StringBuffer sb = new StringBuffer();try {url = new URL(urlStr);in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));String str = null;while ((str = in.readLine()) != null) {sb.append(str);}} catch (Exception ex) {System.out.println("输入异常!");} finally {try {if (in != null) {in.close();}} catch (IOException ex) {System.out.println("输出异常!");}}return sb;}```# 3.小程序获取微信登录授权[小程序接入微信登录开发文档]()小程序获取微信登录授权时序图如下图所示:![image](%7CimageView2/2/w/1240)该流程与H5页面获取微信登录授权流程相比,除获取code步骤有所区别外,其他流程大致相似。在小程序中,前端通过wx.login获取code。然后传递给后台获取openId。

微信隐身昵称代码_微信网页登录授权页面_微信授权登录图片大小

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2022 某某QQ个性网 版权所有 | 备案号:鄂ICP备18018844号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告