当前位置: 首页 > news >正文

创建uniapp项目引入uni-id用户体系使用beforeRegister钩子创建默认昵称

在这里插入图片描述

需求描述

基于uniCloud开发项目,通常会使用用户体系,uni-id就是基于uniCloud的用户体系,满足常规需要的账号密码注册、登录,微信登录等快捷方式,如果使用uni-id自带的uni-id-pages插件,账号密码注册的话,可以设置默认的昵称,但是使用微信或者手机号快捷登录的话是无法设置默认昵称的,可以采用官方推荐的beforeRegister钩子,会在注册用户记录入库前触发,接收到参数并按照我们的需要插入到数据库中。

解决办法

beforeRegister在注册用户记录入库前触发。钩子地址:https://doc.dcloud.net.cn/uniCloud/uni-id/summary.html#before-register
可以通过查看文档有详细的入参及示例,下面这段代码是在入库之前,设置默认昵称的代码。

插入路径
unicloud -> common -> uni-config-center -> uni-id -> hooks -> index.js
如果你的项目中没有我写的这个路径,就按照我上面的名称创建出该文件夹,最后index.js的代码如下:

// 钩子函数示例 hooks/index.js
function beforeRegister({userRecord,clientInfo
} = {}) {  if(!userRecord.nickname) {userRecord.nickname = "匿名"+Math.random().toString(36).substring(3,9)}	return userRecord
}module.exports = {beforeRegister
}

在上面示例代码中,userRecord是即将入库的数据,我们来判断入库数据是否包含nickname这个字段,如果包含不做任何操作,不包含就返回一个“匿名”+随机6位字符串,当然你可以按照你自己的需求来设置默认昵称。

最后千万不要忘了module.exports将beforeRegister方法导出,不然是无法进行入库的。

http://www.xdnf.cn/news/1108711.html

相关文章:

  • 9. JVM垃圾回收
  • 12. JVM的垃圾回收器
  • Agent 设计模式
  • 前后端分离项目的完整部署(Jenkins自动化部署)
  • 【从零开始编写数据库:基于Python语言实现数据库ToyDB的ACID特性】
  • 27.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--币种服务(一)
  • Android下一个简单的定时器,每隔一秒输出一个数字
  • Syntax Error: TypeError: Cannot set properties of undefined (setting ‘parent‘)
  • vue3 canvas 选择器 Canvas 增加页面性能
  • Kimi K2万亿参数开源模型原理介绍
  • 【论文阅读】HCCF:Hypergraph Contrastive Collaborative Filtering
  • 缓存三剑客解决方案
  • 【C语言】回调函数、转移表、qsort 使用与基于qsort改造冒泡排序
  • 利用docker部署前后端分离项目
  • 敏捷开发方法全景解析
  • SQL server之版本的初认知
  • C#枚举:从基础到高级的全方位解析
  • 《通信原理》学习笔记——第一章
  • 《Spring 中上下文传递的那些事儿》Part 11:上下文传递最佳实践总结与架构演进方向
  • 基于MCP的CI/CD流水线:自动化部署到云平台的实践
  • Vue Vue-route (5)
  • Adobe Illustrator关于图标创建的问题
  • 【跟我学运维】chkconfig jenkins on的含义
  • 初等行变换会改变矩阵的什么?不变改变矩阵的什么?求什么时需要初等行变换?求什么时不能初等行变换?
  • 回归(多项式回归)
  • 电网通俗解析术语2:一二次设备关联
  • 【PycharmPyqt designer桌面程序设计】
  • Effective Modern C++ 条款9:优先考虑别名声明而非typedef
  • Socket到底是什么(简单来说)
  • 【Elasticsearch】昂贵算法与廉价算法