微信公众号网页授权登录的超简单实现步骤

 更新时间:2022年06月13日 09:49:38   作者:国服第二切图仔  
微信开放平台为第三方移动程序提供分享、传播的接口,使用户可将第三方程序的内容发布给好友或分享至朋友圈,下面这篇文章主要给大家介绍了关于微信公众号网页授权登录的超简单实现方法,需要的朋友可以参考下

前言

这篇文章带大家掌握 从0到1实现微信公众平台授权登录

微信公众号授权登录到底哪几步回调地址,安全域名怎么配置代码怎么写出了问题怎么办

一、微信公众号授权登录到底哪几步

官方文档介绍微信开放文档微信开发者平台文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html   

 文档看似很复杂,实际上前端只需要两步:

1、去访问微信提供的一个url地址

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%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_redirect

或者https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

两种的区别是:scope为snsapi_base和scope为snsapi_userinfo,区别就是是否弹出用户授权;

应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过 openid 拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )

这个地址需要你配置的地方有:appid(微信公众号id)和redirect_uri(回调地址)

2、访问这个地址后,微信会回跳你设置的redirect_uri地址,并且带回来一个code,

把这个code传给后台,后台去访问微信的接口,获取用户的openid和access_token,

到这里也用实现了微信的授权登录。

二、回调地址,安全域名怎么配置

 1、在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。(测试号申请地址)

微信开放文档微信开发者平台文档https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Requesting_an_API_Test_Account.html

redirect_uri的配置:

只需要配置回调域名 (请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;)。

(1)打开微信公众号测试号(方便开发调式),修改js安全域名,也可以设置192的地址

(2)找到体验接口权限表-网页账户-修改

(3)设置回调域名

 (4)微信公众号正式号设置

三、代码怎么写

代码如下(示例):

<template>
  <div class="login"></div>
</template>
<script>
import { login } from "@/api/login.js";
import indexConfig from "@/config/index.config";
export default {
  data() {
    return {};
  },
  created() {
    this.isWXBrowser = this.isWXBrowser();
    if (this.isWXBrowser) {
      let code = this.getUrlCode("code");
      if (code) {
        this.wxLogin(code); //后台登录
      } else {
        this.getWeChatCode(); //微信授权
      }
    }
  },
  onload() {},
  mounted() {},
  methods: {
    //判断是否是微信内置的浏览器
    isWXBrowser() {
      return (
        String(navigator.userAgent.toLowerCase().match(/MicroMessenger/i)) ===
        "micromessenger"
      );
    },
    //截取地址栏code
    getUrlCode(name) {
      return (
        decodeURIComponent(
          (new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec(
            location.href
          ) || [, ""])[1].replace(/\+/g, "%20")
        ) || null
      );
    },
    //访问微信地址,用来获取code
    getWeChatCode() {
      let local = encodeURIComponent(window.location.href); //获取当前页面地址作为回调地址
      let appid = indexConfig.weixinAppId;
      //通过微信官方接口获取code之后,会重新刷新设置的回调地址【redirect_uri】
      window.location.href =
        "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
        appid +
        "&redirect_uri=" +
        local +
        "&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
    },
    //把code传递给后台接口,静默登录
    wxLogin(code) {
      login(code).then((res) => {
        if (res.success) {
          uni.setStorageSync("token", res.data.session.token);
          uni.setStorageSync("userid", res.data.session.userid);
          uni.navigateTo.push({
            route: "/pages/works/index",
          });
        } else {
          uni.showToast({
            title: res.msg,
            duration: 3000,
            icon: "none",
          });
          return;
        }
      });
    },
  },
};
</script>
<style lang="scss" scoped>
</style>

四、出现问题怎么办

在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在公众平台官网 - 开发者中心处可以设置接口报警),来发现和解决问题

总结

到此这篇关于微信公众号网页授权登录的超简单实现的文章就介绍到这了,更多相关微信公众号网页授权登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • extjs图形绘制之饼图实现方法分析

    extjs图形绘制之饼图实现方法分析

    这篇文章主要介绍了extjs图形绘制之饼图实现方法,结合实例形式分析了extjs绘制饼图的相关实现方法与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • JavaScript编码小技巧分享

    JavaScript编码小技巧分享

    这篇文章适合任何一位基于JavaScript开发的开发者。我写这篇文章主要涉及JavaScript中一些简写的代码,帮助大家更好理解一些JavaScript的基础。希望这些代码能从不同的角度帮助你更好的理解JavaScript。
    2020-09-09
  • JavaScript版本迷局介绍

    JavaScript版本迷局介绍

    有人说喜欢一个人,没必要了解她的过去,然而想读懂一个人,却需要了解她的过去。
    2011-01-01
  • 关于JavaScript中高阶函数的魅力详解

    关于JavaScript中高阶函数的魅力详解

    高阶函数:英文叫Higher-order function。JavaScript的函数其实都指向某个变量。下面这篇文章主要给大家介绍了关于JavaScript中高阶函数的魅力,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09
  • 深入理解JS DOM事件机制

    深入理解JS DOM事件机制

    下面小编就为大家带来一篇深入理解JS DOM事件机制。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • javascript中eval函数用法分析

    javascript中eval函数用法分析

    这篇文章主要介绍了javascript中eval函数用法,实例分析了javascript中eval函数的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • javascript canvas检测小球碰撞

    javascript canvas检测小球碰撞

    这篇文章主要为大家详细介绍了javascript canvas检测小球碰撞,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • js与jquery回车提交的方法

    js与jquery回车提交的方法

    这篇文章主要介绍了js与jquery回车提交的方法,实例分析了js与jQuery中监测及相应回车键实现提交的技巧,需要的朋友可以参考下
    2015-02-02
  • JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器

    JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器

    这篇文章主要介绍了使用JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理

    基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理

    在很多系统模块里面,我们可能都需要进行一定的数据交换处理,这样可以很好的达到用户操作体验感,接下来通过本文给大家介绍基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理相关知识,非常具有参考价值,感兴趣的朋友一起学习吧
    2016-05-05

最新评论