uniCloud基础使用-杂文
创始人
2024-05-31 19:57:56
0

获取openID

云函数

'use strict';
exports.main = async (event, context) => {//event为客户端上传的参数console.log('event : ', event)// jscode2session 微信小程序登录接口,获取openidconst {code} = event;// 云函数中如需要请求其他http服务,则使用uniCloud.httpclient.request(URL,requestOptions)const res = await uniCloud.httpclient.request("https://api.weixin.qq.com/sns/jscode2session?appid=小程序appId&secret=小程序appSecret&js_code="+code+"&grant_type=authorization_code", {// 返回的数据格式dataType: "json"})const openid = res.data.openid;//返回数据给客户端return event
};

调用云函数

      onLoad(option) {// uni.login是一个客户端API,统一封装了各个平台的各种常见的登录方式uni.login({// 登录服务提供商provider: 'weixin',success: (res) => {let code = res.code// uniCloud.callFunction的方式调用云函数uniCloud.callFunction({// 云函数名称name: "login",data: {// 客户端返回的codecode: code},success: (res) => {console.log(res)}})}})}
补充uniCloud.callFunction
// promise方式
uniCloud.callFunction({name:'hellocf',data:{a:1}}).then(res=>{});
// callback方式
uniCloud.callFunction({name:'hellocf',data:{a:1},success(){},fail(){},complete(){}
});

使用公共模块来修改上述代码

index.js|common

const appid = 'wx0990jsdis9fbjsdfjvd9fs'
const appSecrest = '234234hj0js09dfv0j9ds09fjvfs9dfj'module.exports = {appid: appid,appSecrest: appSecrest
}

index.js|login

'use strict';
const {appid,appSecrest
} = require('wx-common')
exports.main = async (event, context) => {XXXXXXXXXXXXXXXXXXX// 云函数中如需要请求其他http服务,则使用uniCloud.httpclient.request(URL,requestOptions)const res = await uniCloud.httpclient.request("https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + appSecrest + "&js_code=" + code +"&grant_type=authorization_code ", {// 返回的数据格式dataType: "json"})XXXXXXXXXXXXXXXXXXX
};

创建数据库,插入数据

云函数

{XXXXXXXXXXXXXXXXXXXXXXXXXXXX// uniCloud.database()方式获取数据库引用const db = uniCloud.database()const openid = res.data.openid;let userData = {openid: openid,nickName: '微信用户',avatarUrl: ""}// 可以获取指定集合的引用await db.collection("users").add(userData)//返回数据给客户端return userData
};
补充元数据库的操作

类型

接口

说明

add

新增记录(触发请求)

计数

count

获取符合条件的记录条数

get

获取集合中的记录,如果有使用 where 语句定义查询条件,则会返回匹配结果集 (触发请求)

引用

doc

获取对该集合中指定 id 的记录的引用

查询条件

where

通过指定条件筛选出匹配的记录,可搭配查询指令(eq, gt, in, ...)使用

skip

跳过指定数量的文档,常用于分页,传入 offset

orderBy

排序方式

limit

返回的结果集(文档数量)的限制,有默认值和上限值

field

指定需要返回的字段

获取用户信息

index.vue

      uni.getUserProfile({desc:"我就是想用",success: (res) => {console.log(res)}})

接口获取调整,详细请看:小程序用户头像昵称获取规则调整公告 | 微信开放社区 (qq.com)

目前小程序开发者可以通过 wx.login 接口直接获取用户的 openId 与 unionId 信息,实现微信身份登录。

使用jwt对openid进行加密与解密

在公共模块中安装jsonwebtoken,运行npm install jsonwebtoken

index.js|comon

const jwt = require("jsonwebtoken")
const getToken = () =>{return jwt.sign({openid:openid},appSecrest,{expiresIn:60*60*24});
}
const verifyToken = (token) =>{// jsonwebtoken提供了jwt.verify()方法验证tokenreturn jwt.verify(token,appSecrest)
}
module.exports = {xxxxxxxxxxxxxxxx,getToken:getToken,verifyToken:verifyToken
}

index.js|login

{
xxxxxxxxxx
const {xxxxxxxx,getToken
} = require('wx-common')const token = getToken(openid)//openid传入userData['token'] = token
//返回数据给客户端
return userData
}

相关内容

热门资讯

surface2 接口-Sur... 嘿,大家好!今天我要聊聊我最近超级迷恋的一个小玩意儿——Surface2接口!这东西,简直是我的数字...
wmiprvse.exe sy... 大家好,今天我要和大家聊聊一个听起来有点高大上,但实际上我们每天都在和它打交道的东西——wmiprv...
卢瓦loic下载-卢瓦 Loi... 嘿,朋友们,今天咱们来聊聊那个让人心跳加速的话题——卢瓦Loic下载!这可不是普通的下载,这是一场关...
双专线叠加千兆路由器:解决网速... 哎呀,说到这个双专线叠加千兆路由器,我这心里就激动得不行!你知道吗,这玩意儿简直就是网络世界的超级英...
探险队长带你揭开名字查询身份证... 大家好,我是你们的探险队长,今天我们要一起潜入一个神秘的世界——名字查询身份证号码查询系统。这听起来...
绿云系统下载:一场没有硝烟的战... 嘿,大家好,我今天真是有一肚子话要说!绿云系统下载,这个名字听起来就像是从天而降的神秘礼物,对吧?我...
winebottler怎么使用... 大家好,我是那个总是对新鲜玩意儿充满好奇的小王。今天要跟大家聊的,是那个让我的Mac变得超级全能的神...
家庭省电宝怎安装-家庭省电宝安... 哎呀,说到家庭省电,我可是有好多小窍门呢!今天就来聊聊我家那个小宝贝——家庭省电宝的安装,简直是太简...
ecshop模板堂去除方法-去... 嘿,大家好,我今天真是气不打一处来!你们有没有试过折腾那个ECShop模板堂?我告诉你,简直是噩梦一...
共享总线技术:电子设备间的高速... 嘿朋友们,今天咱们聊聊这个“共享总线”技术,这可不是什么高深莫测的东西,其实它就是一条电子设备之间相...
呼吸道合胞病毒 用文明-呼吸道... 哎呀,说到这个呼吸道合胞病毒,真是让人头疼不已!这小东西,看不见摸不着的,却能在我们不经意间悄悄地侵...
surface1和2的区别-S... 哟,大家好呀!今天咱们就来聊聊那些让人又爱又恨的Surface1和Surface2。这两个小家伙,虽...
foobar2000 wasa... 嘿,大家好!今天我得说说我和Foobar2000还有WASAPI的那点事儿。你们知道吗,每次我打开这...
findata破解版-Find... 嘿,大家好!今天咱们聊点刺激的,说说那个最近在圈子里火得不行的Findata破解版。你们是不是也听说...
initization fai... 哎,你知道吗?今天我真是倒了八辈子霉了!就在我以为一切都要开始的时候,砰!一切都崩了!对,就是那个该...
华硕e403n 改win7-华... 哎呀,说到这事儿我就激动得不行!你敢信?我那台老古董华硕e403n,本以为它只能乖乖地用着那个什么w...
0x0000000050电脑蓝... 哎呀,我的天啊!刚刚还在激情四射地玩游戏,电脑突然就蓝屏了,屏幕上那个恐怖的0x0000000050...
肛瘘手术 多长时间不疼-肛瘘手... 哎呀,说到肛瘘手术,真是让人头疼又屁股疼!手术后那疼痛,简直让人怀疑人生。但是,亲们,别急,疼痛总会...
windows bluetoo... 嘿,大家好!今天我想聊聊我生活中的一个小英雄——Windows蓝牙。你知道吗,这个小东西真的是我的生...
阿西吧韩国什么意思-阿西吧韩国... 哎呀呀,说到“阿西吧韩国”,你是不是也和我一样,心里有点小激动?这可不是什么正式的词汇,但它在年轻人...