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
}

相关内容

热门资讯

我来教大家“掼蛋大师辅助器ap... 亲,掼蛋大师这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,掼蛋大师的开挂软件,名...
我来教大家“开心联盟辅助器ap... 您好,开心联盟这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
我来教大家“友愉棋牌辅助器ap... 您好,友愉棋牌这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
我来教大家“全盛棋牌辅助器ap... 亲,全盛棋牌这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,全盛棋牌的开挂软件,名...
我来教大家“情怀三三麻将辅助器... 我来教大家“情怀三三麻将辅助器app官方下载最新版本更新”详细分享开挂一、情怀三三麻将AI软件牌型概...
我来教大家“无锡好运麻将辅助器... 亲,无锡好运麻将这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,无锡好运麻将的开挂...
我来教大家“推筒子辅助器app... 您好,推筒子这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打牌...
我来教大家“比奇堡辅助器app... 我来教大家“比奇堡辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方神...
我来教大家“新兴茶苑辅助器ap... 我来教大家“新兴茶苑辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方...
我来教大家“欢乐互动辅助器ap... 我来教大家“欢乐互动辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方...
我来教大家“东方互娱辅助器ap... 亲,东方互娱这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,东方互娱的开挂软件,名...
我来教大家“天天乐清麻将辅助器... 我来教大家“天天乐清麻将辅助器app官方下载最新版本更新”详细分享开挂一、天天乐清麻将AI软件牌型概...
我来教大家“唐三彩辅助器app... 我来教大家“唐三彩辅助器app官方下载最新版本更新”详细分享开挂一、唐三彩AI软件牌型概率发牌机制”...
我来教大家“Y0辅助器app官... 我来教大家“Y0辅助器app官方下载最新版本更新”详细分享开挂一、Y0AI软件牌型概率发牌机制”必胜...
我来教大家“天天互娱辅助器ap... 亲,天天互娱这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,天天互娱的开挂软件,名...
我来教大家“悟空竞技麻将辅助器... 亲,悟空竞技麻将这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,悟空竞技麻将的开挂...
我来教大家“情怀开化麻将辅助器... 我来教大家“情怀开化麻将辅助器app官方下载最新版本更新”详细分享开挂一、情怀开化麻将AI软件牌型概...
我来教大家“龙炎互娱辅助器ap... 我来教大家“龙炎互娱辅助器app官方下载最新版本更新”详细分享开挂一、龙炎互娱AI软件牌型概率发牌机...
我来教大家“闲逸碰胡辅助器ap... 亲,闲逸碰胡这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,闲逸碰胡的开挂软件,名...
我来教大家“友聚麻将辅助器ap... 我来教大家“友聚麻将辅助器app官方下载最新版本更新”详细分享开挂一、友聚麻将AI软件牌型概率发牌机...