>위챗 애플릿 >위챗 개발 >WeChat 개발 후 백엔드 로그인(WeChat 계정 없이 로그인)

WeChat 개발 후 백엔드 로그인(WeChat 계정 없이 로그인)

零下一度
零下一度원래의
2017-05-19 15:54:192890검색

최근에 작은 도구 프로그램을 작성했는데 요구 사항에 따라 로그인하는 데 WeChat에서 제공하는 WeChat 계정이 필요하지 않습니다. 로그인하려면 백그라운드 로그인 인터페이스를 호출해야 합니다. 대부분의 미니 프로그램은 WeChat 정보를 사용하여 로그인하고 자체 백엔드를 사용하여 로그인하는 경우가 거의 없기 때문에 작성 시 여러 가지 함정이 있습니다. 이제 코드를 모두와 공유하겠습니다! (PS: 틀린 부분 있으면 공유해주세요.)

WeChat 개발 후 백엔드 로그인(WeChat 계정 없이 로그인)


WeChat 개발 후 백엔드 로그인(WeChat 계정 없이 로그인)

쓸데없는 소리 하지 말고 바로 코드로 가세요

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.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.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(&#39;../../utils/util.js&#39;);

Page({
  data: {
    motto: &#39;Hello World&#39;,
    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: &#39;text&#39;,
        timer: 1000,
        color: &#39;#fff&#39;,
        text: "用户名不能为空!",
        success: () => console.log(&#39;用户名不能为空!&#39;)
      })
      return;
    } if (passwords === "") {
      that.$wuxToast.show({
        type: &#39;text&#39;,
        timer: 1000,
        color: &#39;#fff&#39;,
        text: "密码不能为空!",
        success: () => console.log(&#39;密码不能为空!&#39;)
      })
      return;
    }

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

    var urlStr = app.globalData.BaseURL + &#39;/api/adminUser/login&#39;;
    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(&#39;adminUserViewId&#39;, adminUserViewId);
          wx.setStorageSync(&#39;token&#39;, token);
          console.log("登录成功的adminUserViewId:" + adminUserViewId);
          console.log("登录成功的token:" + token);
          // 切换到首页
          wx.switchTab({
            url: &#39;/pages/index/index&#39;
          })
        } else {
          that.$wuxToast.show({
            type: &#39;text&#39;,
            timer: 1000,
            color: &#39;#fff&#39;,
            text: res.data.msg,
            success: () => console.log(&#39;登录失败,请稍后重试。&#39; + res.data.msg)
          })
        }
      },
      fail: function () {
        util.hideToast();
        console.log("登录失败");
        that.$wuxToast.show({
          type: &#39;text&#39;,
          timer: 1000,
          color: &#39;#fff&#39;,
          text: &#39;服务器君好累

[관련 권장 사항]

1. WeChat 공개 계정 플랫폼 소스 코드 다운로드

PigCms (PigCms) 마이크로 전자상거래 시스템 운영 버전 (독립 마이크로 스토어 몰 + 3단계 유통 시스템)

3. WeChat Network King v3.4.5 Advanced Business Edition WeChat Rubik's Cube 소스 코드

위 내용은 WeChat 개발 후 백엔드 로그인(WeChat 계정 없이 로그인)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.