全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

微信小程序 后台登录

实现效果图:

最近写了一个工具类的小程序,按需求要求不要微信提供的微信账号登录,需要调取后台登录接口来登录。由于小程序大部分都是调取微信信息登录,很少有调用自己后台来登录的,所以写的时候各种坑,现在把趟好坑的代码共享给大家吧!(PS:如有不妥之处,共勉之。)


废话不说,直接上代码

找到app.js在里面写如下代码

App({
 onLaunch: function () {
  //调用API从本地缓存中获取数据
  var logs = wx.getStorageSync('logs') || []
  logs.unshift(Date.now())
  wx.setStorageSync('logs', logs)
 },
 globalData: {
  adminUserViewId: "",
  token: "",
  userInfo: null,
  BaseURL:"http://airb.cakeboss.com.cn"
  // BaseURL:"http://192.168.0.107:8080"
 },

敲黑板划重点:上图中的代码片段重要的地方就是:“globalData中的 adminUserViewId: "",token: "" ”

这两个参数是前端需要存储的后台参数,用来标记用户的登录状态的。

然后建一个login文件夹,在login.wxml中写如下代码

<import src="../../components/toast.wxml" />

<!-- is="toast" 匹配组件中的toast提示 如果用dialog的话这就是dialog -->
<template is="toast" data="{{ ...$wux.toast }}" />
<view class="login_container">
 <view class="login_view">
  <text class="login_lable">账号:</text>
  <input class="login_text" placeholder="请输入登录账号" bindinput="listenerUsernameInput"/>
 </view>
 <view class="login_view">
  <text class="login_lable">密码:</text>
  <input class="login_text" placeholder="请输入密码" password="true" bindinput="listenerPasswordInput"/>
 </view>
 <view>
  <button class="login_button" bindtap="loginAction">登录</button>
 </view>
</view>

然后建一个login文件夹,在login.wxss中写如下代码

.login_container {
 margin-top: 30px;
}

.login_view {
 width: calc(100% - 40px);
 padding: 0 20px;
 line-height: 45px;
 height: 45px;
 margin-bottom: 20px;
}

.login_text {
 float: left;
 height: 45px;
 line-height: 45px;
 font-size: 12px;
 border: 1px solid rgb(241, 242, 243);
 padding: 0 12px;
 width: calc(100% - 70px);
 border-radius: 4px;
}

.login_lable {
 float: left;
 font-size: 12px;
 width: 40px;
}

.login_button {
 width: 150px;
 background: green;
 color: #fff;
}

在login.js中写如下代码

//login.js
//获取应用实例
var app = getApp()
var util = require('../../utils/util.js');

Page({
 data: {
  motto: 'Hello World',
  username: "",
  password: ""
 },
 onLoad(options) {
  // 初始化提示框
  this.$wuxToast = app.wux(this).$wuxToast
 },
 /** 监听帐号输入 */
 listenerUsernameInput: function (e) {
  this.data.username = e.detail.value;
 },
 /** 监听密码输入 */
 listenerPasswordInput: function (e) {
  this.data.password = e.detail.value;
 },
 // 登录按钮点击事件
 loginAction: function () {

  var userName = this.data.username;
  var passwords = this.data.password;
  var that = this;

  if (userName === "") {
   that.$wuxToast.show({
    type: 'text',
    timer: 1000,
    color: '#fff',
    text: "用户名不能为空!",
    success: () => console.log('用户名不能为空!')
   })
   return;
  } if (passwords === "") {
   that.$wuxToast.show({
    type: 'text',
    timer: 1000,
    color: '#fff',
    text: "密码不能为空!",
    success: () => console.log('密码不能为空!')
   })
   return;
  }

  //加载提示框
  util.showLoading("登录中...");

  var urlStr = app.globalData.BaseURL + '/api/adminUser/login';
  wx.request({
   method: "POST",
   url: urlStr, //仅为示例,并非真实的接口地址
   data: util.json2Form({
    username: userName,
    password: passwords
   }),
   header: {
    "Content-Type": "application/x-www-form-urlencoded"
   },
   success: function (res) {
    util.hideToast();
    console.log(res.data);
    var code = res.data.code;
    if (code === 200) {
     // 后台传递过来的值
     var adminUserViewId = res.data.data.adminUserViewId;
     var token = res.data.data.token;
     // 设置全局变量的值
     app.globalData.adminUserViewId = res.data.data.adminUserViewId;
     app.globalData.token = res.data.data.token;
     // 将token存储到本地
     wx.setStorageSync('adminUserViewId', adminUserViewId);
     wx.setStorageSync('token', token);
     console.log("登录成功的adminUserViewId:" + adminUserViewId);
     console.log("登录成功的token:" + token);
     // 切换到首页
     wx.switchTab({
      url: '/pages/index/index'
     })
    } else {
     that.$wuxToast.show({
      type: 'text',
      timer: 1000,
      color: '#fff',
      text: res.data.msg,
      success: () => console.log('登录失败,请稍后重试。' + res.data.msg)
     })
    }
   },
   fail: function () {
    util.hideToast();
    console.log("登录失败");
    that.$wuxToast.show({
     type: 'text',
     timer: 1000,
     color: '#fff',
     text: '服务器君好累😫,请稍后重试',
     success: () => console.log('登录失败,请稍后重试。')
    })
   }
  })
 }
})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # 后台登录  # 后台登录实现实例  # 后台登录不用微信登录  # 微信小程序实战之登录页面制作(5)  # 微信小程序用户授权  # 以及判断登录是否过期的方法  # 微信小程序获取手机号授权用户登录功能  # 微信小程序实现授权登录  # 一步步教会你微信小程序的登录鉴权  # 微信小程序 登录的简单实现  # 微信小程序 如何保持登录状态  # 微信小程序 登录实例详解  # 微信小程序静默登录的实现代码  # 一文教会你微信小程序如何实现登录  # 为空  # 重试  # 请稍后  # 请输入  # 都是  # 这就是  # 如有  # 之处  # 帐号  # 这两个  # 希望能  # 给大家  # 仅为  # 写了  # 在里面  # 谢谢大家  # 首页  # 图中  # 好累  # 切换到 


相关文章: 如何快速生成专业多端适配建站电话?  如何通过虚拟主机快速完成网站搭建?  建站VPS选购需注意哪些关键参数?  如何高效生成建站之星成品网站源码?  企业微网站怎么做,公司网站和公众号有什么区别?  广州美橙建站如何快速搭建多端合一网站?  宝塔建站后网页无法访问如何解决?  如何挑选最适合建站的高性能VPS主机?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  高防服务器租用如何选择配置与防御等级?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  制作网站的软件免费下载,免费制作app哪个平台好?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  linux top下的 minerd 木马清除方法  黑客如何利用漏洞与弱口令入侵网站服务器?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  代购小票制作网站有哪些,购物小票的简要说明?  建站VPS推荐:2025年高性能服务器配置指南  建站之星多图banner生成与模板自定义指南  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  怎么将XML数据可视化 D3.js加载XML  浅谈Javascript中的Label语句  建站之星如何快速更换网站模板?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  建站之星安装步骤有哪些常见问题?  建站之星×万网:智能建站系统+自助建站平台一键生成  已有域名和空间如何快速搭建网站?  如何用虚拟主机快速搭建网站?详细步骤解析  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  如何获取开源自助建站系统免费下载链接?  ui设计制作网站有哪些,手机UI设计网址吗?  如何通过山东自助建站平台快速注册域名?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  盐城做公司网站,江苏电子版退休证办理流程?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  如何在橙子建站中快速调整背景颜色?  如何通过虚拟主机空间快速建站?  无锡营销型网站制作公司,无锡网选车牌流程?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何快速搭建虚拟主机网站?新手必看指南  建站主机数据库如何配置才能提升网站性能?  高端企业智能建站程序:SEO优化与响应式模板定制开发  Python如何创建带属性的XML节点  如何自定义建站之星模板颜色并下载新样式?  ,网站推广常用方法?  中山网站推广排名,中山信息港登录入口?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。