一 概述

  • 用Node.js搭建开发者服务器
  • 开发服务器作为登录中的三个角色(小程序/开发者服务器/微信接口)中的重要一环
  • 开发者服务器接收code,保存openid和session_key,并返回token

二 开发者服务器依赖

  • Node.js

三 开发者服务器搭建

3.1 配置及模块安装

3.3.1 初始化项目,自动创建package.json配置文件

npm init -y

3.3.2 安装Express和request模块

npm install express --save
npm install request --save

3.3.3 安装nodemon监控文件修改

npm install nodemon -g

3.2 新建index.js文件

3.2.1 index.js服务器文件

const express = require('express');
const bodyParser = require('body-parser');
const request = require('request');
const app = express();
app.use(bodyParser.json());const wx = {appid: 'wx5003ff20387exxxxxx', //填写开发者appidsecret: 'accce9a7c0e4fa39c936553xxxx' //需要填写开发者appsecret};
var db = {session: {}, //保存openid和session_key的 会话信息user: {} //保存用户记录,如用户名,积分等数据};
app.post('/login', (req, res) => {console.log("login code:" + req.body.code);var url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + wx.appid + "&secret=" + wx.secret + "&js_code=" + req.body.code + "&grant_type=authorization_code";request(url, (err, response, body) => {console.log('session:' + body);if (body) {var session = JSON.parse(body);var token = 'token_' + new Date().getTime();db.session[token] = session; //保存用户记录,设置用户初始积分为100if (!db.user[session.openid]) {db.user[session.openid] = { credit: 100 }}}res.json({ token: token })});
});app.listen(3000, () => {console.log('server running at http://127.0.0.1:3000');})

3.2.2 服务器文件说明

登录地址

wx(appid/secret)

小程序appid和secret

db(session/user)

模拟数据库保存数据

token

时间戳

3.3 启动服务器

nodemon index.js

四 参考源码

  • 参考源码

微信小程序开发之——用户登录-搭建开发者服务器(2)相关推荐

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

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

  2. 微信小程序开发之——用户登录-开放数据校验与解密(6)

    一 概述 小程序端获取到的用户信息通过wx.request发送给开发者服务器 开发者服务器无法辨别数据的真伪(如发送虚假用户信息) 小程序提供了开发数据的校验和解密机制 二 获取用户信息 2.1 代码 ...

  3. 微信小程序开发之——用户登录-获取用户信息(5),意外收获字节跳动内部资料

    {{userInfo.nickName}} {{userInfo.city}} {{userInfo.gender0?"未知":userInfo.gender1?"男&q ...

  4. 微信小程序开发之——用户登录-检查用户是否已经登录(4)

    一 概述 小程序登录成功后,将服务器中返回的token保存在数据缓存中 下次启动小程序时,判断数据缓存中是否存在token 如果存在token,直接取出token即可,不在执行登录操作 token过期 ...

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

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

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

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

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

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

  8. 用 Django 开发微信小程序后端实现用户登录

    本文将介绍采用 Django 开发微信小程序后端,通过将用户模块进行重构,并采用JWT来进行用户认证,来解决以下问题: 微信小程序不支持 Cookie,因此不能采用 Django 默认的 Sessio ...

  9. java开发微信如何维护登录状态_微信小程序中做用户登录与登录态维护的实现详解...

    总结 大家都知道,在开发中提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户 ...

最新文章

  1. 为什么python注释不能中文_python中输入中文注释是无法编译
  2. java中包的_Java中的包
  3. 2017年9月16日普级组 在食人百货绽放的蓝蔷薇
  4. CVPR 2020 | 以局部焦点进行渐进式面部表情编辑
  5. 解决windows系统80端口被占用问题
  6. Qt实现全屏下玫瑰花(含详细注释)
  7. 今晚直播丨管中窥豹 - PostgreSQL、openGauss、达梦和OceanBase的初步介绍
  8. Gitter - 高颜值GitHub小程序客户端诞生记 1
  9. mysql不是内部或外部命令,也不是可运行的程序或批处理文件
  10. JavaScript事件触发列表与解说
  11. Java 经典笔试题
  12. php 怎么改迅雷,php实现把url转换迅雷thunder资源下载地址的方法
  13. echarts数据可视化系列:柱状图
  14. html怎样使字数占相同位,《古对今》教案
  15. 5G云游戏革命风云已起,各方势力谁执牛耳
  16. sharelist+RaiDriver将阿里云盘映射到本地磁盘
  17. 利用libjpeg库实现jpg与bmp图片互转指南
  18. 国产旗舰手机价格泡沫严重,二手比新机更划算,要不然就买iPhone
  19. 桌面窗口管理器占用内存过高解决办法
  20. 上面两点下面一个三角形_章勤琼:三角形内角和180该如何说明 ——小学数学中的合情推理和演绎推理...

热门文章

  1. 名帖148 行书《兰亭八柱帖》第六册:于敏中补戏鸿堂刻柳公权书兰亭诗阙笔册
  2. Revit导出PDF格式图纸流程及“批量导出图纸”
  3. dotnet 基于 debian 创建一个 docker 的 sdk 镜像
  4. 【即点即改】关于PHP即点即改的一些东西
  5. 暗黑破坏神资源 - 紫冰整理
  6. 【回答问题】ChatGPT上线了!给我推荐20个比较流行的自动驾驶算法模型
  7. 智能客服选型产品选型比较:晓多、奇智、春松客服
  8. 【Vue】ElementUI、ECharts使用 cdn引入
  9. 微软的IE 全称 变为,“Windows Internet Explorer“ ,从IE7 开始了!
  10. a8处理器相当于骁龙几_曾受人追捧的A8处理器,放在现在是什么水平了?