欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node微信小程序登錄實(shí)現(xiàn)登錄的項(xiàng)目實(shí)踐

 更新時(shí)間:2023年09月12日 09:26:48   作者:阿山同學(xué).  
登陸流程是指小程序用戶進(jìn)行授權(quán)登陸,即獲取用戶的微信賬號(hào)等信息本文就來介紹一下node微信小程序登錄實(shí)現(xiàn)登錄,具有一定的參考價(jià)值,感興趣的可以了解一下

好久不見兄弟們這段時(shí)間比較忙

需要使用到的模塊

npm i axios
npm i uuid

廢話少說直接上可cv(bai piao)代碼

const axios = require("axios");
const uuid = require("uuid");
// 微信小程序的apikey這些
const wxKey = require("../../../main.js").wx;
// wx: {
// 	// 小程序 appid
// 	appid: "xxx",
// 	// 小程序 appSecret
// 	secret: "xxx",
// },
/**
 * @param {code,mode} req
 * @param {wx.login Code} code
 * @param {階段} mode
 * @param {*返回} reust
 */
// res的code返回 200/400 直接下發(fā)用戶信息/創(chuàng)建用戶
module.exports = async (req, reust) => {
	// 獲取從客戶端上傳上來的key
	try {
		let { code } = req.body;
		let { appid, secret } = wxKey;
		let openid;
		if (!code) {
			return Promise.reject("沒有code參數(shù)");
		}
		await axios
			.get("https://api.weixin.qq.com/sns/jscode2session", {
				params: {
					appid: appid,
					secret: secret,
					js_code: code,
					grant_type: "authorization_code",
				},
			})
			.then((response) => {
				if (response.data.errcode) {
					return Promise.reject("非法的用戶憑證");
				}
				openid = response.data.openid;
			});
		// openid 這個(gè)參數(shù)在這里就已經(jīng)拿到了用戶的openid
	} catch (err) {
		// 出錯(cuò)了執(zhí)行
	}
};

下面展示我的完整代碼

const axios = require("axios");
const uuid = require("uuid");
const wxKey = require("../../../main.js").wx;
const db = require("../../../api/mysql.js");
const senf = require("../../../api/respond");
/**
 * @param {code,mode} req
 * @param {wx.login Code} code
 * @param {階段} mode
 * @param {*返回} reust
 */
// res的code返回 200/400 直接下發(fā)用戶信息/創(chuàng)建用戶
module.exports = async (req, reust) => {
	// 獲取從客戶端上傳上來的key
	try {
		let { code } = req.body;
		let { appid, secret } = wxKey;
		let openid;
		if (!code) {
			return Promise.reject("沒有code參數(shù)");
		}
		await axios
			.get("https://api.weixin.qq.com/sns/jscode2session", {
				params: {
					appid: appid,
					secret: secret,
					js_code: code,
					grant_type: "authorization_code",
				},
			})
			.then((response) => {
				if (response.data.errcode) {
					return Promise.reject("非法的用戶憑證");
				}
				openid = response.data.openid;
			});
		let userinfo = await searchUserOpenId(openid);
		if (userinfo.length !== 0) {
			reust.send(senf.init(200, userinfo[0]));
		} else {
			// 創(chuàng)建用戶
			let creatUserinfoStatus = await CreateUserinfo({
				hash: uuid.v4(),
				name: "",
				openid: openid,
				avatar:
					"https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0",
			});
			console.log("creatUserinfoStatus", creatUserinfoStatus);
			reust.send(senf.init(200, creatUserinfoStatus));
		}
		console.log("userinfo", userinfo);
	} catch (err) {
		// 用戶沒有被創(chuàng)建等...
		console.log("err", err);
		reust.send(senf.init(400, err || "請(qǐng)檢查網(wǎng)絡(luò)環(huán)境"));
	}
};
// 檢查是否有openid如果有的話就直接查數(shù)據(jù)沒有的話就彈登錄
function searchUserOpenId(openid) {
	return new Promise((resolve, reject) => {
		// 查找用戶
		let sql = db.senf.data.user.AuthUser;
		db.query(sql, [`%${openid}%`], (err, results) => {
			resolve(results);
		});
	});
}
// 創(chuàng)建用戶信息
function CreateUserinfo(userinfo) {
	if (userinfo.length < 5) {
		return Promise.reject();
	}
	console.log("userinfo", userinfo);
	// 創(chuàng)建用戶
	return new Promise((resolve, reject) => {
		let sql = db.senf.data.user.createUser;
		// 查找用戶
		db.query(
			sql,
			[
				userinfo.name,
				userinfo.openid,
				userinfo.avatar,
				userinfo.hash,
				new Date(),
			],
			(err, results) => {
				console.log("err", err);
				if (err) {
					reject("創(chuàng)建用戶失敗");
				} else {
					resolve(userinfo);
				}
			}
		);
	});
}

到此這篇關(guān)于node微信小程序登錄實(shí)現(xiàn)登錄的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)node小程序登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.js 文件夾目錄結(jié)構(gòu)創(chuàng)建實(shí)例代碼

    Node.js 文件夾目錄結(jié)構(gòu)創(chuàng)建實(shí)例代碼

    下面小編就為大家?guī)硪黄狽ode.js 文件夾目錄結(jié)構(gòu)創(chuàng)建實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • Node.js 中 http 模塊的深度剖析與實(shí)戰(zhàn)應(yīng)用小結(jié)

    Node.js 中 http 模塊的深度剖析與實(shí)戰(zhàn)應(yīng)用小結(jié)

    本文詳細(xì)介紹了Node.js中的http模塊,從創(chuàng)建HTTP服務(wù)器、處理請(qǐng)求與響應(yīng),到獲取請(qǐng)求參數(shù),每個(gè)環(huán)節(jié)都通過代碼示例進(jìn)行解析,旨在幫助開發(fā)者熟練掌握http模塊,構(gòu)建高效的網(wǎng)絡(luò)應(yīng)用,感興趣的朋友一起看看吧
    2025-01-01
  • Mongoose學(xué)習(xí)全面理解(推薦)

    Mongoose學(xué)習(xí)全面理解(推薦)

    本篇文章主要介紹了Mongoose全面理解,詳細(xì)的介紹了mongoose連接數(shù)據(jù)庫,查找讀取數(shù)據(jù)和數(shù)據(jù)驗(yàn)證等,有興趣的可以了解一下。
    2017-01-01
  • Node.js實(shí)用代碼段之獲取Buffer對(duì)象字節(jié)長度

    Node.js實(shí)用代碼段之獲取Buffer對(duì)象字節(jié)長度

    這篇文章主要介紹了Node.js實(shí)用代碼段之獲取Buffer對(duì)象字節(jié)長度,需要的朋友可以參考下
    2016-03-03
  • Nodejs?http模塊返回內(nèi)容中文亂碼問題及解決

    Nodejs?http模塊返回內(nèi)容中文亂碼問題及解決

    這篇文章主要介紹了Nodejs?http模塊返回內(nèi)容中文亂碼問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 如何降低node版本,怎樣實(shí)現(xiàn)降低node版本

    如何降低node版本,怎樣實(shí)現(xiàn)降低node版本

    這篇文章主要介紹了如何降低node版本,怎樣降低node版本問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Nodejs關(guān)于gzip/deflate壓縮詳解

    Nodejs關(guān)于gzip/deflate壓縮詳解

    本文主要向大家介紹了nodejs中關(guān)于gzip/deflate壓縮的2種方法,分別是管道壓縮和非管道壓縮,十分詳細(xì),并附帶示例,這里推薦給大家參考下。
    2015-03-03
  • Electron如何通過ffi-napi調(diào)用dll導(dǎo)出接口

    Electron如何通過ffi-napi調(diào)用dll導(dǎo)出接口

    文章介紹了如何在Electron項(xiàng)目中使用ffi-napi模塊調(diào)用DLL文件,并詳細(xì)描述了環(huán)境搭建、安裝Electron和ffi-napi、配置Visual Studio和Python環(huán)境、解決常見問題等步驟,感興趣的朋友跟隨小編一起看看吧
    2025-02-02
  • Node.js?中的服務(wù)器相關(guān)概念(常見的服務(wù)器任務(wù))

    Node.js?中的服務(wù)器相關(guān)概念(常見的服務(wù)器任務(wù))

    Node.js?中,服務(wù)器的創(chuàng)建與管理是非常重要的內(nèi)容,Node.js?的非阻塞?I/O?特性使得它特別適合處理高并發(fā)的請(qǐng)求,本文將介紹一些與?Node.js?服務(wù)器相關(guān)的基本概念,包括?HTTP?服務(wù)器、請(qǐng)求和響應(yīng)、路由、以及如何處理常見的服務(wù)器任務(wù),感興趣的朋友一起看看吧
    2025-04-04
  • node.js中的buffer.slice方法使用說明

    node.js中的buffer.slice方法使用說明

    這篇文章主要介紹了node.js中的buffer.slice方法使用說明,本文介紹了buffer.slice的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評(píng)論