一文教会你微信小程序如何实现登录

目录
  • 业务流程:
  • 下面开始用代码介绍
    • 1:data初始数据
    • 2:按钮触发的login点击事件
    • 3:调用后台的登录接口
  • 总结

业务流程:

1:首先需要一个按钮触发事件

2:调用微信小程序的登录接口wx.login,拿到code

3:调用微信小程序的获取用户信息的接口wx.getUserProfile,拿到用户的个人信息

4:拿到的个人信息调用后台的接口,把个人信息传给后台,登录成功并把相关信息存储在本地的缓存中,方便之后的开发使用

下面开始用代码介绍

wxml:

<view>
    <button bindtap="login">登录</button>
</view>

js:

1:data初始数据

//后台接口需要的一下参数(具体要和后台的同事商量)
loginInfo: {
      code: '',
      spread_spid: 0,
      spread_code: 0
}

2:按钮触发的login点击事件

调用微信小程序的登录接口:

wx.login(Object object) | 微信开放文档
微信开发者平台文档
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html

调用微信获取用户个人信息的接口:

wx.getUserProfile(Object object) | 微信开放文档
微信开发者平台文档
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserProfile.html

//登录按钮触发的事件
login(){
  let that = this
    //调用微信小程序的登录接口
   wx.login({
      success(e) {
        that.data.loginInfo.code = e.code //拿到的code存储在data中
        wx.showModal({
          title: '温馨提示',
          content: '微信授权登录后才能正常使用小程序功能',
          cancelText: '拒绝',
          confirmText: '同意',
          success( sucessInfo ) {
            //调用微信小程序的获取用户信息的接口
            wx.getUserProfile({
              desc: '用于完善会员资料', // 声明获取用户个人信息后的用途
              lang: 'zh_CN',
              success(info) {
                //把获取到的信息复制到data中的loginInfo中
                that.data.loginInfo = Object.assign( that.data.loginInfo, info )
                //调用后台的接口,把所有整合的个人信息传过去
                that.handlerLogin( that.data.loginInfo )
              },
              fail(e) {
                console.log('获取用户信息失败', e)

              }
            })
          },
          fail() {
            console.log("拒绝")
          },
          complete() {}
        })

      },
      fail(e) {
        console.log('fail', e)
        wx.showToast({
          title: '网络异常',
          duration: 2000
        })
        return
      }
    })
}

3:调用后台的登录接口

wx.setStorageSync() :将数据存储在本地缓存中,

wx.setStorageSync(string key, any data) | 微信开放文档
微信开发者平台文档
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html

wx.getStorageSync('token') :获取本地缓存的数据

any wx.getStorageSync(string key) | 微信开放文档
微信开发者平台文档
https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.getStorageSync.html

//调用后台的登录接口
  handlerLogin( loginInfo ) {
    let that = this
    //login是后台接口封装的方法
    login( loginInfo ).then(( res ) => {
      console.log('登录成功', res)
      let { cache_key, expires_time, token, userInfo } = res.data
       //把用户信息存储到storage中,方便其它地方使用
      wx.setStorageSync('cache_key', cache_key)
      wx.setStorageSync('expires_time', expires_time)
      wx.setStorageSync('token', token)
      wx.setStorageSync('isLog', true)
      wx.setStorageSync('userInfo', JSON.stringify( userInfo ))
      wx.setStorageSync('loginRecord', new Date().getTime())
    })
    .catch(( res ) => {
      console.log('catch', res)
    })
    .finally(() => {
      console.log('finally')
    })
  }

总结

以上就是微信小程序开发时,实现的登录。一共4步走,希望能帮助得到大家。

到此这篇关于微信小程序如何实现登录的文章就介绍到这了,更多相关微信小程序实现登录内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 微信小程序静默登录的实现代码

    1.通过 wx.login获取 登录凭证(code) wx.login({ success: function (res) { console.log(res.code): } }) 2.在此处获得 appid 和 secret :https://developers.weixin.qq.com/sandbox 如图 3.小程序端 http://127.0.0.1:8080/jeecg-boot 这一段是自己的访问路径 //app.js App({ globalData: { appid: ''

  • 一步步教会你微信小程序的登录鉴权

    前言 为了方便小程序应用使用微信登录态进行授权登录,微信小程序提供了登录授权的开放接口.乍一看文档,感觉文档上讲的非常有道理,但是实现起来又真的是摸不着头脑,不知道如何管理和维护登录态.本文就来手把手的教会大家在业务里如何接入和维护微信登录态,下面话不多说了,来一起看看详细的介绍吧. 接入流程 这里官方文档上的流程图已经足够清晰,我们直接就该图展开详述和补充. 首先大家看到这张图,肯定会注意到小程序进行通信交互的不止是小程序前端和我们自己的服务端,微信第三方服务端也参与其中,那么微信服务端在其中

  • 微信小程序 如何保持登录状态

    问题 由于wx.request()发起的每次请求对于服务器来说都是不同的会话(wx.request()请求是先经过微信服务器再到达我们的服务器),这样会导致后续请求都相当于未登录的状态. 解决方案 将登陆时后端返回的session保存在本地, 然后将session存放在cookie中以请求头的方式带回给服务端 实现代码 1.请求登陆接口获取到header["Set-Cookie"],并储存 //app.js App({ onLaunch() { wx.login({ // 登录 //

  • 微信小程序用户授权,以及判断登录是否过期的方法

    初始界面: 判断用户是否过期(如果未过期则重新登录): 获取用户信息: 获取用户的信息并在前台显示: 主要实现两个功能: ①判断登录是否过期,如果过期则就重新登录,如果没过期就提示未过期 ②获取用户的信息,并在前台显示 index.wxml <button bindtap="login">登录</button> <button bindtap="checksession">登录是否过期</button> <but

  • 微信小程序实战之登录页面制作(5)

    提供一个登录页的案例,供同学们使用 项目效果图: 目录结构: 图片资源: name.png key.png loginLog.jpg login.wxml: <view class="container"> <view class="login-icon"> <image class="login-img" src="../images/loginLog.jpg"></image>

  • 微信小程序 登录实例详解

    微信小程序登录 一. 小程序不支持cookie会话 1. 通过传递与检验3rd_session来保持会话 2. 3rd_session可以执行'`head -n 80 /dev/urandom | tr -dc A-Za-z0-9 | head -c 168`该命令生成 3. 使用Redis或者数据库存储session 4. 生成的3rd_session发送给客户端,写入storage 5. 客户端的每次请求必须带上3rd_session 二.加密数据解码 1. $iv,$code是被加密过的数

  • 微信小程序 后台登录(非微信账号)实例详解

    微信小程序 后台登录 实现效果图: 最近写了一个工具类的小程序,按需求要求不要微信提供的微信账号登录,需要调取后台登录接口来登录.由于小程序大部分都是调取微信信息登录,很少有调用自己后台来登录的,所以写的时候各种坑,现在把趟好坑的代码共享给大家吧!(PS:如有不妥之处,共勉之.) 废话不说,直接上代码 找到app.js在里面写如下代码 App({ onLaunch: function () { //调用API从本地缓存中获取数据 var logs = wx.getStorageSync('log

  • 微信小程序实现授权登录

    前言:由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通过 button 去触发.官方连接:点击打开链接 1.实现思路 自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过 button 组件去触发 getUserInof 接口.在用户进入微信小程序的时候,判断用户是否授权了,如果没有授权的话就显示下面"界面简介"的第一个图,让用户去执行授权的操作.如果已经授权了,则直接跳过这个页面,进入首页. 2.界面简介 3.源码

  • 微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无效).将button中的open-type="getPhoneNumber",并且绑定bindgetphonenumber事件获取回调. <span style="font-size:14px;"><button open-type="get

  • 微信小程序 登录的简单实现

    微信小程序 实现登录 最近一段时间,微信小程序在张小龙的8小时演讲下瞬间火了起来,但是呢没火多久,就迅速沉静下去了,我也是不知道张小龙什么想法,但是我想法挺多的,好了,废话说多了,聊一下正题吧,我呢是刚入行的小程序员,一路上采坑不断,别人遇不到的坑基本上踩了一遍,话说我的运气有时候也确实挺爆炸的,小程序一个小登录送给大家, 一.小程序开发前准备 目前在网上的教程已经不计其数了,给大家推荐一个网址: http://www.jb51.net/article/111566.htm 这里面介绍比较详细,

随机推荐