关于微信开发中的网页权限认证

本文介绍了一种在微信公众号中实现网页授权的方法。通过详细步骤解释如何配置URL、获取code及access_token,并最终实现用户的微信信息获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近在开发微信,准备为我们社团做一个微信公众号,在实现一个功能的时候卡壳了一下。功能描述:使用微信点击一个连接,跳转一个网页输入学生的相关信息。这样一个东西,如果在自己的程序里面其实很简单,但是由于是微信公众平台,所以一下子没有解决。现在就说明一种解决方案。

  对于微信鉴权调用网页,在微信开发文档已经写的比较清楚。

  第一步:使用URL解码,然后在微信公众号做一个配置;

  第二步:

在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。 

 

注意:在这个过程中,我一开始是配置一个网页,网页里面就是一个表单。我的目标是输入相关信息后可以获得微信openID这样一个信息。在表单提交的时候,Servlet却无法活动code这个参数。直接使用在创建连接开始使用session,在servlet中获取session也是失败的,失败的原因很简单sessionID不同。最终的解决方法是,在创建一个servlet,连接指向这个servlet,使用session获取到code,然后servlet跳转到页面。

 

第三步:

首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

请求方法

获取code后,请求以下链接获取access_token:  https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 

转载于:https://my.oschina.net/puzhiyuan/blog/892275

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值