微信授权登录接口开发(微信授权登录接口申请)

网友投稿 1281 2023-02-16


本篇文章给大家谈谈微信授权登录接口开发,以及微信授权登录接口申请对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享微信授权登录接口开发的知识,其中也会对微信授权登录接口申请进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

微信授权h5网页登录手机端接口代码操作流程

1 第一步微信授权登录接口开发:用户同意授权微信授权登录接口开发,获取code

2 第二步:通过code换取网页授权access_token

3 第三步:刷新access_token(如果需要)

4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
参考地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html#2
微信接口调试工具地址:

https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=indextype=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81form=%E8%8E%B7%E5%8F%96access_token%E6%8E%A5%E5%8F%A3%20/token

微信小程序授权登录最佳实践

公司业务开展微信授权登录接口开发,最近完成了一个微信小程序微信授权登录接口开发的开发。场景是这样,同一微信开放平台下拥有相同主体的APP和微信小程序来完成同样的业务,用户进入app或者微信小程序时必须获取用户的unionid来确认当前的用户身份,完成登录。小程序“获取用户信息”api(getUserInfo)的调用方式和之前相比有了较大更新,优雅的实现用户授权和登录非常重要,以下是我在微信小程序授权登录相关流程在开发时候的实现思路和总结,分享如下。

说明:

你可以简单的理解为

如果开发者在多个移动应用、网站应用和公众帐号之间有统一用户账号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,便可利用UnionID机制来满足上述需求。

用户在开放平台的唯一标识符

你可以简单的理解为:

微信针对不同的用户在不同的应用下都有唯一的一个openId, 但是要想确定用户是不是同一个用户,就需要靠unionid来区分。一般自己的后台都会有自己的一个用户表,每个用户有不同的userid。也就是说同一个用户在同一个微信开放平台下的相同主体的应用对应着相同的userid,unionid以及不同的openid。所以在用户登录进来的时候,我们只能靠微信返回给我们的unionid去判断是不是同一个用户,在去关联我们的用户表,拿到对应的userid。

绑定了开发者帐号的小程序,可以通过下面3种途径获取UnionID。

当用户满足条件2和3时,开发者可以直接通过wx.login获取到该用户的unionid, 否则必须调用接口 wx.getUserInfo ,额外需要注意的事就是妥善处理用户拒绝授权的情况。

在真实的业务场景中,我们希望,用户进入小程序时,未登录情况下可以正常浏览商品,对小程序有个基本的认知,不要直接弹出框要求用户授权,否则会干扰用户,导致新用户的流失,当用户需要使用一些高级功能和场景,这个时候再去要求用户授权,这样用户授权的几率会大大提高。
将登录的逻辑封装ajax
流程:

封装的意义
不再关注当前接口是否需要登录,用户是否已授权,所有请求直接调用 ajax() ,在必要的时候完成一切登录以及授权流程。小程序入口页面增加,业务拓展的时候,你只需要专注于业务实现。

参考资料

微信小程序用户授权登录

1、appid: 微信小程序/公众号的唯一凭证,即 AppID。

获取途径:可在「微信公众平台 - 设置 - 开发设置」页中获得。(需要已经成为开发者,且帐号没有异常状态)

用途:小程序的 AppID 相当于小程序平台的一个身份证,会在很多场景中使用,比如小程序的登录、授权等

2、openID: openID 是微信生态下 应用的唯一标识 , ,即同一个用户在不同的小程序下的openid是不同的。

获取途径:调用 auth.code2Session 接口,通过code(登录凭证,调用wx.login获取)+appid+appsecret(小程序密钥,获取方式和appid一样)可以换取openid,即 静默授权。

用途:用于在开发者系统中标识用户信息

3、UnionID:UnionID 是微信生态下 用户的唯一标识 ,换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

获取途径:绑定了开发者帐号的小程序,可以通过以下途径获取 UnionID。

1)开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户授权。

2)小程序端调用云函数时,可在云函数中通过 Cloud.getWXContext 获取 UnionID。

用途:标识同一个微信开放平台下的用户,可用于去重判断

也就是我们常用的微信移动端/PC端之间的扫码登录,PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联;

需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关注相关微信公众号等都可以获取。

1、静默授权不需要用户确认,只需要用户访问某个网页,属于嵌套在普通网页里的授权形式,但是只能获取到用户的唯一标示openid和union id,无法拿到用户的微信头像、微信名称等个人信息,对于用户的简单认证还是很有用的。

2、静默授权的过程:

1)调用 wx.login() 获取 临时登录凭证code

2)调用 auth.code2Session 接口,换取用户唯一标识 openID

3)调用本地后台服务,将 openID 映射到本地的 userId

微信开发文档-小程序登录流程

参考文章:

1、 【微信小程序用户授权登录】

2、 微信第三方登录(静默授权和非静默授权)

3、 openid会变吗?微信小程序开发中的appid、openid、unionid使用总结

个人网站微信登录方案

作为网站开发者,如果网站能够使用微信进行登录,无疑可以给用户提供很大的便利,我们的网站也可以相对更容易获得流量。

但是微信授权登录的功能只提供给了已经认证的企业用户,作为个人开发者是无法使用这个功能的,给个人开发者造成了极大的不方便。

那么作为个人开发者的我们就不能够为我们的系统赋予微信登录的功能了吗?其实个人开发者也是可以使用微信登录功能的。这里提供一个解决方案。

易登 是一个为个人开发者提供微信扫码登录服务的网站,只需通过简单几步操作即可为个人开发者网站赋能微信登录。
详细说明参考文档:记忆旅途。

这里有详尽的使用教程及使用场景。有需要的朋友欢迎体验。

既然我们不能直接使用微信登录的功能,也就只好采取曲线救国的方案了。

我们都知道微信小程序获取用户信息的功能对个人开发者是不设限的,既然小程序可以获取到用户信息,我们也就可以在网站端通过小程序来获取到用户信息。

首先,开发者需要在 易登 为网站创建一个secret,为该secret绑定一个可供 易登 请求的服务接口,在 易登 配置好这些内容之后,就是开发者对接接口的工作了。

用户在网站前端请求 易登 获取微信登录二维码的接口,通过该接口响应的二维码图片地址和当前登陆用户的临时身份凭证,将二维码展示出来。然后就是用户通过微信扫码登录,用户确认授权登录之后, 易登 服务会请求开发者在易登填写的回调接口, 易登 发起的请求参数就是用户的一些基本信息,比如openid、头像、昵称等,开发者填写的接口收到请求之后就可以根据自己的业务需要来使用这些用户信息了。然后开发者获取这些用户信息之后,再响应给 易登 一个成功的状态码,这时整个登录流程就结束了,小程序会提示用户登陆成功。

开发者可以先前往 易登 ,记忆旅途进行扫码登录体验。

快速实现微信公众号认证授权开发

最近做微信公众号和小程序相关微信授权登录接口开发的开发。大家都知道微信开发调试起来比较麻烦微信授权登录接口开发,因此推荐给大家一个内网穿透的工具NATTAPP。附上官网一分钟快速上手地址:https://natapp.cn/article/natapp_newbie.。在这个平台上设置好一个域名。通过此域名可以映射到本地。 

微信开发之前首先要有一个经过备案的域名 比如 http://sjx.s2.natapp.cc
授权步走如下 
放到项目resource/static 目录下

在浏览器上访问 http://sjx.s2.natapp.cc/MP_verify_CchqzOKsBbk7hOMf.txt 会得到一串数字
返回公众号设置会看到网页授权域名上已经有值微信授权登录接口开发了。此时域名已经备案成功。

认证授权开发

demo 使用的是别人封装好的微信工具类可以实现快速开发

github地址: https://github.com/Wechat-Group/weixin-java-tools

新建url 配置类
yml 配置
编写授权接口

@GetMapping("/authorize")

public Stringauthorize(@RequestParam("returnUrl") String returnUrl) {

String url =urlConfig.getWechatMpAuthorize() +"/sell/wechat/userInfo";  //用户授权之后回调地址

//方法执行完会重定向

    String redirectUrl =wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAUTH2_SCOPE_USER_INFO,

            URLEncoder.encode(returnUrl));

    return "redirect:" + redirectUrl;

}

授权成功之后回调地址接口

/**

* 当用户授权过之后会回调这个方法微信授权登录接口开发,这个方法可以获取用户的openid

**/

@GetMapping("/userInfo")

public StringuserInfo(@RequestParam("code") String code, @RequestParam("state") String returnUrl)throws Exception {

WxMpOAuth2AccessToken wxMpOAuth2AccessToken =new WxMpOAuth2AccessToken();

    try {

wxMpOAuth2AccessToken =wxMpService.oauth2getAccessToken(code);

    }catch (WxErrorException e) {

e.printStackTrace();

        log.error("微信网页授权{}", e.getMessage());

        throw new SellException(ResultEnum.WECHAT_MP_ERROR);

    }

WxMpUser wxMpUser =wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);

    wxMpUser.getNickname();

    String openId = wxMpOAuth2AccessToken.getOpenId();

    return "redirect;" + returnUrl +"?openid=" + openId;

}

已上两个接口便完成了授权认证获取用户信息

测试

打开微信公众平台
https://open.weixin.qq.com/connect/oauth2/authorize?appid= APPID redirect_uri= REDIRECT_URI response_type=codescope= SCOPE state=STATE#wechat_redirect

加粗斜体的是需要替换的。
个人测试地址

https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的appidredirect_uri=微信上备注的域名/sell/wechat/authorize?returnUrl=https://www.baidu.comresponse_type=codescope=snsapi_userinfostate=STATE#wechat_redirect

将这些地址发送到微信上的微信传输助手
在手机上点击地址就会回调预先设置好的授权地址
授权完成之后就会回调这个设置好的获取用户信息的接口
微信昵称和openId也已经获取到了 关于微信授权登录接口开发和微信授权登录接口申请的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 微信授权登录接口开发的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于微信授权登录接口申请、微信授权登录接口开发的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue 2.5.2下axios + express 本地请求404的解决方法
下一篇:基于webpack
相关文章

 发表评论

暂时没有评论,来抢沙发吧~