最近做的一个项目有涉及到用户登录。微信小程序的用户登录在我看来有两种,一种是需要用微信提供的用户身份标识,简单地说就是小程序的登录者就是使用这个小程序的微信用户,还有一种是小程序和服务器之间有自己的一套用户唯一标识,类似于员工id这种,这种就不需要获取微信的登陆凭证换取openid等繁杂操作,就是简单地输入账号密码登陆然后就能从服务器获取用户数据。这次做的项目用的是第二种。

第一种方式官方文档的流程图已经说得足够明白清晰。

步骤分为两步:

1.小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。

2.开发者服务器以code换取 用户唯一标识openid 和 会话密钥session_key

之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

具体接口详见官方文档

第二种方式就简单多了,只需要发起wx.request()请求将输入的账号密码送至服务器换取登录信息。

wxml代码

<view class="container"><open-data type="userAvatarUrl" class='avatar'></open-data><!-- <image src='{{avatarUrl}}' class='avatar'></image>--><form bindsubmit="formSubmit" class='form'><view class="row"><input type="text" name="userId" placeholder="请输入用户账号" placeholder-class='placeholder' value="{{userId}}" /></view><view class="row"><input type="password" name="userPassword" placeholder="请输入密码" placeholder-class='placeholder' value="{{userPassword}}" /></view><view class="row"><button class='btn'  form-type="submit"><text class='lable'>绑定账号</text></button></view></form>
</view>

这里特别要提一嘴的是,用到了这行代码显示用户头像。

<open-data type="userAvatarUrl" class='avatar'></open-data>

获取用户信息时,如果是只需要获取用户的头像和昵称,可以直接使用<open data />组件,如果还需要更多用户信息要通过wx.getUserInfo()获取。

最终的界面是这样子的

登陆按钮的bindsubmit事件中的wx.request()

wx.request({url: '',           //服务器的登录接口data: {id: objData.userId,password: objData.userPassword},header: { 'Content-Type': 'application/x-www-form-urlencoded' },method: 'POST',success: function (res) {if(res.data.code == 0){              //账号密码比对正确var userInfo = res.data.data    //用户登录信息wx.setStorageSync('userInfo', userInfo);  //跳转到成功页面wx.switchTab({url: '../onDuty/onDuty'})}else {                //出现errorwx.showToast({title: res.data.message.slice(5),icon: 'loading'})}},fail: function () {console.log('绑定失败QAQ')wx.showModal({title: '失败',content: '绑定失败,请重试',})}})

需要同服务端保持seesion见微信小程序踩坑–设置cookie保持session

微信小程序踩坑—用户登录界面相关推荐

  1. 微信小程序踩坑记——ColorUI组件的使用

    微信小程序踩坑记--组件的使用 组件类型 ColorUI Vant weapp ColorUI 首先贴上官网链接:官网链接,GitHub链接 简介 ColorUI是一个css库!!!在你引入样式后可以 ...

  2. 微信小程序+SpringBoot实现用户登录

    微信小程序+SpringBoot实现用户登录 前言 微信小程序越来越吃香了(前话就这么多,嘿嘿) 前端 那就开始吧,登录界面就如此了 wxml内容如下,这是格式化后粘贴过来的,emmm,怪像那回事. ...

  3. 微信小程序开发之——用户登录-登录流程(1)

    一 概述 新建微信小程序自带用户登录简化 小程序登录流程时序 二 新建微信小程序自带用户登录简化 新建的微信小程序默认有用户登录功能,将多余功能去除后,简化如下 2.1 index.wxml < ...

  4. 微信小程序踩坑日记-微信小程序首次加载样式错乱问题

    微信小程序踩坑日记-微信小程序首次加载样式错乱问题 在实际开发项目中,遇到了个棘手的问题,就是在某些因素下,进入小程序发现有些样式发生偏移.错乱等问题 问题原因:-未知(估计是组件的问题) ↓ 解决办 ...

  5. 【微信小程序】 通过用户登录实现批量收集formId

    参考网上多篇文章,本文目的旨在做个记录. [微信小程序]通过用户登录实现批量收集formid,无限次发送模板消息 提交1次表单可下发1条模板消息,多次提交下发条数独立,相互不影响. 所以,想无限次发送 ...

  6. Laravel 微信小程序后端实现用户登录的示例代码

    Laravel 微信小程序后端实现用户登录的示例代码 这篇文章主要介绍了Laravel 微信小程序后端实现用户登录的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值 ...

  7. 关于微信小程序踩坑之 下载Word失败 手机vConsole中提示:downloadfile:fail url not in domain list

    下载文件失败提示:downloadfile:fail url not in domain list 1.看响应数据是否成功  微信开发工具 -->Network 2.上传时一定要配置  详情-& ...

  8. 【微信小程序+node】微信小程序结合node用户登录-06

    申请一个微信小程序账号,并获取appId,appSecret 1.使用新的qq注册一个新的小程序 2.获取appId,appSecret.特别注意appSecret需要自己保存,每次获取都要验证,特别 ...

  9. 微信小程序踩坑-Cookie登陆失败

    目录 1 问题描述 小程序成功登陆后,安卓用户预约操作时,偶尔会出现登陆异常情况. 2 登陆实现方案 后端Cookie校验用户登陆状态 3 排查过程 1)后台日志排查,用户Cookie无效 2)微信小 ...

最新文章

  1. javascript es6 == === is 区别
  2. mastercam2019安装教程
  3. 【渝粤题库】陕西师范大学200371 拓扑学 作业 (专升本、高起本)
  4. 第1章 IO流概述及FileWriter类使用
  5. Sharepoint 2010 解决DFWP - Unable to display this Web Part 的问题
  6. android toast 自定义时间,android自定义Toast设定显示时间
  7. oracle中decode的用法(例子)
  8. postfix疯狂外发垃圾邮件之分析与解决(下)
  9. 本地音乐上传到网易音乐云盘上
  10. redis 的过期策略都有哪些?内存淘汰机制都有哪些?
  11. 禁止edge浏览器自动更新
  12. 华为交换机基于IP地址划分VLAN配置实验
  13. NFT开拓IP授权新模式
  14. 我所理解的高通平台Lcd驱动框架
  15. 3分钟学会制作动态折线图!
  16. 源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)
  17. mybatis学习之高级映射
  18. 把Python脚本放到手机上定时运行
  19. 计算机对煤矿设备的管理,计算机网络技术与煤矿设备管理
  20. 代码随想录训练营day36

热门文章

  1. 四旋翼飞行器13——欧拉中的俯仰、横滚、偏航角
  2. sqlserver插入数据时如何忽略主键重复的数据
  3. Druid连接池参考配置和说明
  4. 中关村科技企业融资缺口700亿 商业银行垂涎
  5. 在js中对数值进行取整、四舍五入等方法汇总
  6. Linux 2.6 CFS 调度算法内幕
  7. 工控触摸屏IC读卡一体机
  8. 云主机装黑果实践(4):阿里轻量机上变色龙bootloader启动问题
  9. 排序篇:直接插入、希尔、直接选择和堆排序(C语言)
  10. oracle索引创建及删除