uniCloud中在服务端获取用户uid

jdysya
jdysya

获取token

首先我们在官网看到,关于云对象中获取用户端token的api

云对象自动管理uni-id的token。开发者无需手动管理。如果不了解uni-id,请参考

接口形式

this.getUniIdToken()

示例

module.exports = {
	add: function(){
		const token = this.getUniIdToken()
		if(!token) {
			// 登录状态无效
		}
	}
}

获取的token是一个加密的字符串,如需解开token,拿到用户的uid、role、permission,则需要导入 uni-id-common 公共模块调用 checkToken 方法。详见

调用checkToken方法

这里有点问题,因为我用的这个项目是uni-starter,按照官网的描述说的是所有的uniCloud项目在创建时都已经默认预置了uni-id-common,但是看了一下这个项目里创建uni-id的方法如下 |400

需要注意的是,需要在配置文件中配置好依赖模块的位置 可以在对应的云对象,右键,选择管理公共模块依赖 |400

获取uid

async getUId(){
		const userToken = this.getUniIdToken()
		const uid = (await uniID.checkToken(userToken)).uid
		return  uid
	}

说明

在服务器根据用户的token解出对应的uid是很有必要的,这样更安全,毕竟前端传过来的数据==并不一定==可靠