微信小程序开发之后台登录(非微信账号登录)
凌雪 2018-11-12 来源 :网络 阅读 1459 评论 0

摘要:本文将带你了解微信小程序开发之后台登录(非微信账号登录),希望本文对大家学微信有所帮助。

本文将带你了解微信小程序开发之后台登录(非微信账号登录),希望本文对大家学微信有所帮助。


最近写了一个工具类的小程序,按需求要求不要微信提供的微信账号登录,需要调取后台登录接口来登录。由于小程序大部分都是调取微信信息登录,很少有调用自己后台来登录的,所以写的时候各种坑,现在把趟好坑的代码共享给大家吧!(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:"//airb.cakeboss.com.cn"
    //   BaseURL:"//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>
      <view>
    <text>账号:</text>
    <input placeholder="请输入登录账号" bindinput="listenerUsernameInput"/>
  </view>
  <view>
    <text>密码:</text>
    <input placeholder="请输入密码" password="true"   bindinput="listenerPasswordInput"/>
  </view>
  <view>
    <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: '服务器君好累    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之微信频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程