微信小程序开发之——用户登录-搭建开发者服务器(2)
一 概述
- 用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)
一 概述 新建微信小程序自带用户登录简化 小程序登录流程时序 二 新建微信小程序自带用户登录简化 新建的微信小程序默认有用户登录功能,将多余功能去除后,简化如下 2.1 index.wxml < ...
- 微信小程序开发之——用户登录-开放数据校验与解密(6)
一 概述 小程序端获取到的用户信息通过wx.request发送给开发者服务器 开发者服务器无法辨别数据的真伪(如发送虚假用户信息) 小程序提供了开发数据的校验和解密机制 二 获取用户信息 2.1 代码 ...
- 微信小程序开发之——用户登录-获取用户信息(5),意外收获字节跳动内部资料
{{userInfo.nickName}} {{userInfo.city}} {{userInfo.gender0?"未知":userInfo.gender1?"男&q ...
- 微信小程序开发之——用户登录-检查用户是否已经登录(4)
一 概述 小程序登录成功后,将服务器中返回的token保存在数据缓存中 下次启动小程序时,判断数据缓存中是否存在token 如果存在token,直接取出token即可,不在执行登录操作 token过期 ...
- Laravel 微信小程序后端实现用户登录的示例代码
Laravel 微信小程序后端实现用户登录的示例代码 这篇文章主要介绍了Laravel 微信小程序后端实现用户登录的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值 ...
- 微信小程序+SpringBoot实现用户登录
微信小程序+SpringBoot实现用户登录 前言 微信小程序越来越吃香了(前话就这么多,嘿嘿) 前端 那就开始吧,登录界面就如此了 wxml内容如下,这是格式化后粘贴过来的,emmm,怪像那回事. ...
- 【微信小程序】 通过用户登录实现批量收集formId
参考网上多篇文章,本文目的旨在做个记录. [微信小程序]通过用户登录实现批量收集formid,无限次发送模板消息 提交1次表单可下发1条模板消息,多次提交下发条数独立,相互不影响. 所以,想无限次发送 ...
- 用 Django 开发微信小程序后端实现用户登录
本文将介绍采用 Django 开发微信小程序后端,通过将用户模块进行重构,并采用JWT来进行用户认证,来解决以下问题: 微信小程序不支持 Cookie,因此不能采用 Django 默认的 Sessio ...
- java开发微信如何维护登录状态_微信小程序中做用户登录与登录态维护的实现详解...
总结 大家都知道,在开发中提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户 ...
最新文章
- 为什么python注释不能中文_python中输入中文注释是无法编译
- java中包的_Java中的包
- 2017年9月16日普级组 在食人百货绽放的蓝蔷薇
- CVPR 2020 | 以局部焦点进行渐进式面部表情编辑
- 解决windows系统80端口被占用问题
- Qt实现全屏下玫瑰花(含详细注释)
- 今晚直播丨管中窥豹 - PostgreSQL、openGauss、达梦和OceanBase的初步介绍
- Gitter - 高颜值GitHub小程序客户端诞生记 1
- mysql不是内部或外部命令,也不是可运行的程序或批处理文件
- JavaScript事件触发列表与解说
- Java 经典笔试题
- php 怎么改迅雷,php实现把url转换迅雷thunder资源下载地址的方法
- echarts数据可视化系列:柱状图
- html怎样使字数占相同位,《古对今》教案
- 5G云游戏革命风云已起,各方势力谁执牛耳
- sharelist+RaiDriver将阿里云盘映射到本地磁盘
- 利用libjpeg库实现jpg与bmp图片互转指南
- 国产旗舰手机价格泡沫严重,二手比新机更划算,要不然就买iPhone
- 桌面窗口管理器占用内存过高解决办法
- 上面两点下面一个三角形_章勤琼:三角形内角和180该如何说明 ——小学数学中的合情推理和演绎推理...
热门文章
- 名帖148 行书《兰亭八柱帖》第六册:于敏中补戏鸿堂刻柳公权书兰亭诗阙笔册
- Revit导出PDF格式图纸流程及“批量导出图纸”
- dotnet 基于 debian 创建一个 docker 的 sdk 镜像
- 【即点即改】关于PHP即点即改的一些东西
- 暗黑破坏神资源 - 紫冰整理
- 【回答问题】ChatGPT上线了!给我推荐20个比较流行的自动驾驶算法模型
- 智能客服选型产品选型比较:晓多、奇智、春松客服
- 【Vue】ElementUI、ECharts使用 cdn引入
- 微软的IE 全称 变为,“Windows Internet Explorer“ ,从IE7 开始了!
- a8处理器相当于骁龙几_曾受人追捧的A8处理器,放在现在是什么水平了?