【uniapp小程序授权登录】

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

uniapp微信小程序授权登录具体流程

  • 打开小程序公众平台,申请小程序appid
  • hbuilderx创建项目并打开项目,点击manifest.json->点击小程序配置->配置小程序appid
  • 进入uniapp小程序判断是否登录,已登录存储登录态,未登录调用uni.getUserProfile()获取用户信息。
// 1、uni.getUserProfile 获取用户信息 
   					uni.getUserProfile({
   						desc: '登录后可同步数据',
   						lang: 'zh_CN',
   						success: (infoRes) => {
   							console.log('用户信息-----------', infoRes)
   							this.userInfo = infoRes.userInfo;
   							// 2、uni.login 获取code 
   							uni.login({
   								provider: 'weixin',
   								success: async (loginRes) => {
   									console.log('获取code-----------', loginRes)
   									this.sessionId = await this.$apis.authLoginWechat({code: loginRes.code})
   									this.showPhone = true
   								},
   								fail: function(err) {
   								}
   							});
   						},
   						fail: function(err) {
   						}
   					});
  • 然后调用uni.login获取code,将code传给后端接口获取openid(sessionKey)
  • 然后弹窗交互提示获取手机号。使用button传入open-type(参考官方文档)监听@getPhoneNumber
 // 这里每次要鉴权, 刷新sessionKey
    // 获取手机号码并回调出去登录后的token
    getPhoneNumber: function (e) {
      console.log('e', e)

      if (
        e.detail.errMsg &&
        e.detail.errMsg == 'getPhoneNumber:fail user deny'
      ) {
        return
      }
      uni.showLoading()
      var that = this
      let encryptedData = e.detail.encryptedData
      let iv = e.detail.iv
      let code = e.detail.code

      // 判断有没有openid, 如果有, 就直接检查是否过期
      // 如果没有, 就重新获取
      that.getWeChatUnitId(function (result) {
        let openid = uni.getStorageSync('openid')

        // 这里是调用后端接口获取手机号码
        userInfoService.decodePhoneNumber(
          encryptedData,
          iv,
          code,
          openid,
          function (res) {
            if (res.data.code == '0') {
              // uni.hideLoading();
              uni.setStorageSync('newUser', res.data.data.newUser)
              // 不存储, 获取token成功再存储
              that.phone = res.data.data.phone
              // res.data.data.newUser = 1
              if (res.data.data.newUser == '1') {
                that.mode = 'getSMSCode'
                // 获取验证码
                that.getSmsCode()
              } else {
                // 通过手机号码+openid获取token
                let openid = uni.getStorageSync('openid')
                let isNewUser = false
                userInfoService.accessToken(
                  that.phone,
                  openid,
                  isNewUser,
                  function (phone) {
                    uni.hideLoading()
                    // 抛出成功通知
                    that.$emit('loginSucceed', {
                      mobile: phone,
                      openid: openid,
                    })
                    uni.$emit('updateUserStatus')
                    setTimeout(() => {
                      that.loginSysLog()
                    }, 3000)
                    that.close()
                  },
                  function (error) {
                    uni.hideLoading()
                    uni.showToast({
                      title: '登录失败,请稍后重试',
                      icon: 'none',
                    })
                  }
                )
              }
            } else {
              uni.hideLoading()
              uni.showToast({
                title: res.data.msg,
                icon: 'none',
              })
            }
          }
        )
      })
    },
  • 然后在getPhoneNumber方法中首先检查是否有openid,有的话是否过期,没有过期调用后端接口获取手机号

文章来源地址https://www.toymoban.com/news/detail-523351.html

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

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

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

相关文章

  • uni-app 微信小程序之好看的ui登录页面(一)

    更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程序之好看的ui登录页面(四) uni-app 微信小程序之好看的ui登录页面(五)

    2024年02月04日
    浏览(61)
  • uni-app 微信小程序之好看的ui登录页面(四)

    更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程序之好看的ui登录页面(四) uni-app 微信小程序之好看的ui登录页面(五)

    2024年02月04日
    浏览(48)
  • uni-app 微信小程序之好看的ui登录页面(五)

    更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程序之好看的ui登录页面(四) uni-app 微信小程序之好看的ui登录页面(五)

    2024年02月04日
    浏览(58)
  • uni-app 微信小程序之好看的ui登录页面(三)

    更多登录ui页面 uni-app 微信小程序之好看的ui登录页面(一) uni-app 微信小程序之好看的ui登录页面(二) uni-app 微信小程序之好看的ui登录页面(三) uni-app 微信小程序之好看的ui登录页面(四) uni-app 微信小程序之好看的ui登录页面(五)

    2024年01月15日
    浏览(59)
  • 微信小程序一键登录功能,使用uni-app和springboot(JWT鉴权)

    目录 概述 微信登录接口说明  关于获取微信用户的信息 前端代码(uni-app) 后端代码(SpringBoot) 配置文件:application.yml  配置文件:Pom.xml  类:WeChatModel    类:WeChatSessionModel  类:UserInfoController 业务层实现类:UserInfoServiceImpl 工具类:JWTUtils 拦截器配置-自定义拦截器

    2024年02月09日
    浏览(72)
  • 前端Uni-app开发微信小程序|微信小程序手机商城

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库

    2024年02月12日
    浏览(54)
  • uniapp 小程序实现微信授权登录(前端和后端)

    1.主要流程:先通过 uni.getUserProfile授权获取用户名称和头像等信息 在调用 uni.login 获取微信登录需要的临时code 2. 前端代码: 1.主要流程:在前端调用接口成功的将临时code 传递给后端时 ,后端通过调用微信的第三方接口拿到 openid, session_key 这两个参数,查询数据库是否有

    2024年02月16日
    浏览(42)
  • Uni-app前端开发|基于微信小程序的快递运输管理系统

    作者主页:编程千纸鹤 作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师 主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享 收藏点赞不迷路  关注作者有好处 文末获得源码 语言环境:Java: 

    2024年02月16日
    浏览(106)
  • #微信小程序# #uni-app# 实现提交表单或登录,需勾选同意协议,才可以进行下一步

    一、需求: 实现提交表单或登录,需勾选同意协议,才可以进行下一步 二、步骤/思路: (1)使用uni-app的组件checkbox-group排出勾选协议版面   (2)设置一个多选框的数组,绑定在u-checkbox-group里, 使用这个数组来进行判断是否勾选了用户协议 (3)设置点击事件toBngling(),写

    2024年02月12日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包