请问微信公众号的网页授权,回调地址我们应该填前端页面地址还是后端接口地址呢?

微信网页授权地址:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8...

其中redirect_uri这个回调地址参数,应该填写前端页面地址?还是后端接口地址呢?到底2者填写有什么区别?求大神指点下

PS:查阅很多资料,有的是填写前端页面地址,有的建议填写后端接口地址

阅读 2.9k
avatarAI BotBETA

在微信公众号的网页授权中,redirect_uri 这个回调地址参数应该填写后端接口地址。

redirect_uri 参数是用于在授权流程结束后,将授权的结果(包括访问令牌等)重定向回你的应用的页面。由于这个结果是敏感的,所以必须放在后端服务器上处理,而不是直接放在前端页面上。

具体来说,授权流程是这样的:

  1. 用户点击授权按钮,跳转到微信的授权页面。
  2. 用户同意授权后,微信会向 redirect_uri 指定的地址发送一个包含授权结果的请求。
  3. 后端服务器接收到这个请求后,解析出授权结果,然后将其存储在服务器上,或者将其传递给前端页面。

如果将 redirect_uri 填写为前端页面地址,那么授权结果将会直接暴露在前端页面上,这将会带来安全隐患。因此,为了保证安全性,必须将 redirect_uri 填写为后端接口地址。

需要注意的是,redirect_uri 必须是在微信公众平台后台设置的合法域名下的一段路径。同时,不同的应用可能有不同的 redirect_uri,因此在开发过程中,需要确保在不同的应用中使用正确的 redirect_uri

2 个回答
新手上路,请多包涵

写到哪里都可以。

1.如果写前端,拿到 code,校验 state,然后调后端接口让后端验证登录逻辑就行,前端根据返回选择跳转到业务页还是继续补充其他信息。

2.如果写后端,那就前端不知道已经回调了,那就前端一直得轮训后端查状态,这就把问题搞复杂了,何必呢。

填写发起授权的前端页面地址即可,授权成功后会给这个url加上code跳回来,前端页面再从url上获取code

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏