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
}

相关内容

热门资讯

魅蓝x系统基于安卓,基于安卓的... 你知道吗?最近手机圈里可是掀起了一股热潮,那就是魅蓝X的操作系统——魅蓝X系统基于安卓。这款系统不仅...
爱思助手降级安卓系统,爱思助手... 你知道吗?最近有个大新闻在安卓圈里炸开了锅,那就是爱思助手竟然对安卓系统进行了降级处理!这可真是让人...
国产电脑系统安卓 你有没有想过,如果有一天,你的电脑不再依赖那个遥远的操作系统,而是用上了咱们国产的电脑系统呢?想象那...
刘氏神数安卓系统,揭秘安卓系统... 你有没有听说过刘氏神数安卓系统?这可是最近在数码圈里火得一塌糊涂的存在呢!想象你的手机瞬间变成了一个...
800x600安卓系统,800... 亲爱的读者们,你是否曾为拥有一款屏幕尺寸为800x600的安卓手机而感到好奇?这款屏幕尺寸在如今这个...
奥迪安卓系统盒子叫什么 你有没有发现,现在汽车界的科技风潮可是越来越猛了!这不,奥迪这个汽车界的“颜值担当”,最近也来了一场...
开发原生安卓系统的方法,从入门... 你有没有想过,为什么有些手机品牌能独树一帜,而有些则默默无闻?答案可能就藏在一个神秘的领域——开发原...
安卓9的小米系统包,功能升级与... 你有没有发现,最近你的小米手机更新了安卓9的系统包?别小看了这个小小的更新,它可是给我们的手机生活带...
安卓系统安装app如何提取 你有没有想过,手机里那么多app,有时候我们只想提取某个功能或者某个模块,直接安装整个app又觉得太...
华为m9安卓系统,探索极致性能... 你有没有发现,最近手机圈里又掀起了一股热潮?没错,就是华为M9这款神器的安卓系统!今天,就让我带你一...
安卓系统是买美国,安卓系统背后... 安卓系统:为何选择美国制造?在数字化时代,智能手机已成为我们生活中不可或缺的一部分。而在这众多智能手...
模拟器安卓系统过低,模拟器兼容... 你是不是也遇到了这样的烦恼?手机里的游戏模拟器突然罢工了,原来是安卓系统版本过低,导致无法正常运行。...
安卓刷多看系统版本,多看系统版... 你有没有想过,你的安卓手机是不是也能像那些高端机型一样,拥有多看系统的高效体验呢?别急,今天就来给你...
号店联盟系统和安卓,打造智慧零... 你知道吗?在互联网的世界里,有一个神奇的小玩意儿,它就像是一个无所不能的助手,让商家和消费者都能享受...
安卓换鸿蒙系统原信息,原信息无... 你有没有想过,给你的安卓手机换一个全新的操作系统呢?想象原本熟悉的界面突然变得焕然一新,是不是有点小...
游戏提示仅旧版安卓系统,旧版安... 你有没有发现,最近玩安卓游戏的时候,有些提示信息总是跳出来,让你感觉有点不适应?别急,让我来给你揭秘...
安卓双击直接进入系统,便捷操作... 你知道吗?最近在安卓手机圈里,有个小秘密风头正劲,那就是“双击直接进入系统”的功能。这听起来是不是有...
安卓系统如何删微信,安卓系统下... 手机里的微信是不是越来越臃肿了?别急,今天就来教你怎么轻松给安卓系统的微信瘦身,让它恢复轻盈活力! ...
华为next鸿蒙系统与安卓系统... 你知道吗?最近科技圈可是炸开了锅,华为的新系统——Next鸿蒙系统,横空出世,引发了大家对安卓系统的...
安卓可信用的系统证书,可信度背... 你有没有想过,你的安卓手机里那些神秘的系统证书,它们到底是个啥玩意儿?别急,今天就来给你揭秘这些安卓...