【Uniapp】小程序接入微信登录

这篇具有很好参考价值的文章主要介绍了【Uniapp】小程序接入微信登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在开始之前不得不吐槽一下和微信登录接入相关的信息七零八落,不同的参数要到不同的文章中找,有的是uniapp官方文档有的是小程序官方文档,总之对于新手实在是不够友好。我也是找了好几篇文档参考了过来人的经验才凑齐这一整个流程。

申请阶段

申请阶段分为微信公共平台申请和小程序申请。

  • 微信公众平台:
    • 独立邮箱
    • 独立微信认证
  • 小程序
    • 独立邮箱
    • 独立微信认证

两者都认证好以后才能将小程序加入到微信公众平台具备使用登录接口的能力。

接入阶段

接入前需要在Hbulider里配置一下
uniapp 小程序调用微信接口,前端,uni-app,小程序,微信
接入主要用到了uni.getUserProfile和uni.login两个函数,其中uni.getUserProfile用于获取用户信息(昵称和头像等), uni.login会返回一个code用于获取openid。需要先调用getUserProfile函数后才能login。在微信更新了getUserProfile接口之后该接口获取到的数据都为匿名数据,如果还是需要获取用户名和头像将需要单独处理。后面再讲解。

   getUserInfo() {
      uni.getUserProfile({
        desc: '登录后可同步数据',
        lang: 'zh_CN',
        success: (res) => {
          console.log('getUserProfile', res);
        },
      });
    },
uni.getUserProfile({
  //获取到用户信息
  desc: '登录后可同步数据',
  success: async obj => {
    // 调用 action ,请求登录接口
    uni.login({
      provider: 'weixin',
      success: res => {
        //获取到code
        that.code = res.code;
        //请求登录接口
        if (res.errMsg == 'login:ok') {
          uni.request({
            url:
              'https://api.weixin.qq.com/sns/jscode2session?appid=wxa****&secret=****&js_code=' +
              that.code +
              '&grant_type=authorization_code', //仅为示例,并非真实接口地址。
            method: 'GET', //请求方法
            success: res => {
              this.openId = res.data.openid
              var data = {
                open_id:this.openId
              }
              uni.request({
                url: this.Base_url + 'login', //后端接口地址
                method: 'POST', //请求方法
                header: {
                  'content-type': 'application/json', //请求头
                  'Access-Control-Allow-Origin': '*'
                },
                data: JSON.stringify(data), //将对象参数转换为JSON字符串
                mode: 'no-cors',
                success: function(res) {
                  if (res.data.responseCode == 200) {
                    if(res.data.responseDescription.ifNew==true){
                      uni.setStorageSync('userId', res.data.responseDescription.id);
                      uni.navigateTo({
                        url: '/subPages/startGame/startGame'
                      });
                    }else{
                      that.show = true
                    }	
                  } else {
                    uni.$u.toast(res.data.responseDescription);
                  }
                },
                fail: function(res) {
                  uni.$u.toast('网络错误');
                }
              });
            }
          });
        }
      }
    });
  },
  fail: () => {
    uni.showToast({
      title: '授权已取消',
      icon: 'error',
      mask: true
    });
  }
});

这里把https://api.weixin.qq.com/sns/jscode2session放到了前端是为了方便展示但是由于此处涉及到敏感信息所以还是建议放到后端使用。

获取头像和昵称

因为我使用的业务只涉及到昵称,这里主要讲解昵称的获取,nickname就是获取到的昵称

<u-popup :show="show" @close="close" customStyle="height:40vh" mode="bottom" :round="10">

  <view class="nickname" style="display: flex;flex-direction: row;margin-top: 50rpx;">
    <text class="weui-text">昵称:</text>
    <input type="nickname" class="weui-input" :value="nickName" @blur="bindblur" placeholder="请输入昵称" @input="bindinput" />
  </view>

  <button type="primary" @click="save" style="width:600rpx;margin-top: 50rpx;margin-bottom: 30rpx;display: flex;justify-content: center;">保存</button>
</u-popup>

uniapp 小程序调用微信接口,前端,uni-app,小程序,微信uniapp 小程序调用微信接口,前端,uni-app,小程序,微信
点击请输入昵称

参考文档

小程序用户头像昵称获取规则调整公告 | 微信开放社区
接口getUserProfile问题,真机不弹授权窗 | 微信开放社区
头像昵称填写 | 微信开放文档
小程序登录 | 微信开放文档
uni-app:微信小程序:得到用户的微信头像和昵称(hbuilderx 3.7.3) - 刘宏缔的架构森林 - 博客园
微信开放文档文章来源地址https://www.toymoban.com/news/detail-861789.html

到了这里,关于【Uniapp】小程序接入微信登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 小程序接入企业微信客服

    uniapp小程序有接入客服自带的方法,将button设置属性open-type=\\\'contact\\\',就可以接入,但是只支持接入小程序客服,并不支持企业微信客服 原生微信小程序方法,可以使用wx.openCustomerServiceChat()去调用企业微信客服,去uniapp官方文档搜索并不支持,其实是可以直接使用的 一、

    2024年02月15日
    浏览(41)
  • uniapp微信小程序接入echarts(踩坑无数)

    因为本次小程序开发使用到了echarts 发现接入有点麻烦,记录一下 使用了uniapp插件市场的 echarts-for-wx插件 导入到自己的项目会多出以下文件夹,真正有用的是红框内的三个文件,可以将其移入到components下,具体哪个页面/组件使用了就引入 这里我是把uni-ec-canvas移入到compone

    2024年02月12日
    浏览(51)
  • 【uniapp调用微信支付】uniapp开发小程序-调用微信支付

    使用uniapp开发小程序时,调用微信支付的步骤如下: 1.在manifest.json - App模块权限选择 中勾选 payment(支付) 2.在 manifest.json - App SDK配置 中,勾选需要的支付平台,目前有微信支付、支付宝支付、苹果应用内支付(IAP),其中微信支付需要填写从微信开放平台获取的 1.微信小程序支

    2024年02月12日
    浏览(45)
  • uniapp接入萤石微信小程序插件 可播放 可云台控制

    萤石官方提供了一些适用于uniapp / 小程序的方案 如 小程序半屏  hls  rtmp  等 都有坑 截止到2023.11.7 hls不支持H265  rtmp需要在小程序申请直播类目  所以都不适合项目使用  故选用小程序插件方式 uniapp引入使用  该方式仅需在小程序后台申请插件即可  审核时间大约3天左右

    2024年02月05日
    浏览(41)
  • UNIAPP---实现微信小程序登录授权和手机号授权(uniapp做微信小程序)

    描述:uniapp开发小程序,先授权用户信息后再出现手机号授权的页面进行手机号授权。完成后返回上一页面并把信息存入后台以及前台缓存中,方便使用。 1.在uniapp的manifest.json进行微信小程序配置 2.封装request请求api.js(如果已封装可跳过) 3.封装微信授权登录以及获取手机

    2024年02月11日
    浏览(47)
  • 新!uniapp微信小程序微信授权登录

     11月后,微信小程序对于微信授权登录做了逻辑上的更改,之前的一键授权获取用户信息的功能已不再适用。已发布审核完成的小程序不受影响,但要想再发布,只能换成新的登陆逻辑了。 首先,要说明的,个人中心页面,未登陆时,应有登陆按钮,最好不要通过路由守卫

    2024年02月09日
    浏览(56)
  • 【Uniapp】小程序携带Token请求接口+无感知登录方案2.0

    本次改进原文《【Uniapp】小程序携带Token请求接口+无感知登录方案》,在实际使用过程中我发现以下 bug : 若token恰好在用户访问接口时到期,就会直接查询为空,不反映token过期问题(例如:弹窗显示订单查询记录为空),并不是因为没有数据而是因为token过期了,接口返回

    2024年02月09日
    浏览(38)
  • 【微信授权登录】uniapp开发小程序,实现微信授权登录功能 & 退出登录

    微信授权登录(获取用户信息) 1.先获取用户信息——用户授权允许后,通过调用uni.login 可以获取到code。 2.拿着获取到的code去调用——登录接口,可以获取到token。 3.把token存入缓存。就可以在页面判断是否登录了。 第一种方式: 第二种方式:

    2024年02月03日
    浏览(54)
  • 【微信授权登录】uniapp开发小程序,实现获取微信授权登录功能

    微信授权登录(获取用户信息) 1.先获取用户信息——用户授权允许后,通过调用uni.login 可以获取到code。 2.拿着获取到的code去调用——登录接口,可以获取到token。 3.把token存入缓存。就可以在页面判断是否登录了。 第一种方式: 第二种方式:

    2024年02月11日
    浏览(45)
  • uniapp微信小程序最新登录获取头像、昵称

    由于微信官方wx.getUserProfile 接口的回收,以后不能通过wx.getUserProfile来返回用户信息,只能自己手动获取用户头像和昵称的信息。  针对此问题有以下解决方法: 在点击登录时用一个弹窗设置头像和昵称,如图:  使用button设置open-type=\\\"chooseAvatar\\\"来获取头像,至于button更多的效

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包