使用zdppy_amauth开发激活用户接口

服务端代码:

  • 1、创建数据库连接对象
  • 2、初始化数据库
  • 3、声明一个上下文
  • 4、挂载用户相关的路由,这里主要由
    • 用户登录接口
    • 用户注册注册
    • 获取用户列表接口
    • 激活指定用户接口
  • 5、启动服务
import mcrud
import api
import amauth
import env
import contextlib

env.load("../.env")
db = mcrud.new_env()

amauth.data.init(db, is_init_role=True, is_init_auth=True)


@contextlib.asynccontextmanager
async def lifespan(app):
    yield {"db": db}


app = api.Api(
    routes=[
        api.resp.post("/auth/user/login", amauth.user.login),
        api.resp.post("/auth/user/register", amauth.user.register),
        api.resp.get("/auth/user", amauth.user.get_users),
        api.resp.put("/auth/user/active/{id}", amauth.user.active),
    ],
    lifespan=lifespan,
)

if __name__ == '__main__':
    app.run()

测试代码:

  • 1、我们注册一个叫做zhangdapeng1的用户
  • 2、查询所有的用户
  • 3、我们从查询的所有用户中,提取出名字叫做zhangdapeng1的用户的ID。同时,我们要观察,此时这个用户的激活状态是什么?
  • 4、我们根据这个ID去调用激活用户的接口,激活指定ID的用户
  • 5、再次查询所有的用户。此时,我们再次观察,这个用户的激活状态是什么?
import req

# 注册
target_url = "http://127.0.0.1:8888/auth/user/register"
data = {
    "username": "zhangdapeng1",
    "password": "zhangdapeng1",
    "re_password": "zhangdapeng1",
}
resp = req.post(target_url, json=data)
print(resp.json())

# 查询所有用户
target_url = "http://127.0.0.1:8888/auth/user"
resp = req.get(target_url)
print(resp.json())

# 获取id
data = resp.json()
user_id = None
for u in data.get("data"):
    if u.get("username") == "zhangdapeng1":
        user_id = u.get("id")
        break

# 激活
target_url = "http://127.0.0.1:8888/auth/user/active/" + user_id
resp = req.put(target_url)
print(resp.json())

# 查询所有用户
target_url = "http://127.0.0.1:8888/auth/user"
resp = req.get(target_url)
print(resp.json())

输出结果:

  • 1、注册:返回True表明成功
  • 2、查询所有的用户:由zhangdapeng1的用户,ID是1788925660358500352,active激活状态是0
  • 3、根据ID激活用户:返回True,表明成功
  • 4、再次查询所有的用户:由zhangdapeng1的用户,ID是1788925660358500352,active激活状态是1
{'msg': 'success', 'status': True, 'code': 10000}

{'msg': 'success', 'status': True, 'code': 10000, 'data': [{'id': '1788925660358500352', 'username': 'zhangdapeng1', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 0, 'status': 0, 'add_time': '2024-05-10 13:34:47', 'update_time': '2024-05-10 13:34:47', 'login_time': None}, {'id': '1788925643526758400', 'username': 'zhangdapeng', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 1, 'status': 0, 'add_time': '2024-05-10 13:34:43', 'update_time': '2024-05-10 13:34:43', 'login_time': None}]}

{'msg': 'success', 'status': True, 'code': 10000}

{'msg': 'success', 'status': True, 'code': 10000, 'data': [{'id': '1788925660358500352', 'username': 'zhangdapeng1', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 1, 'status': 0, 'add_time': '2024-05-10 13:34:47', 'update_time': '2024-05-10 13:34:47', 'login_time': None}, {'id': '1788925643526758400', 'username': 'zhangdapeng', 'real_name': None, 'mobile': None, 'email': None, 'avatar': None, 'active': 1, 'status': 0, 'add_time': '2024-05-10 13:34:43', 'update_time': '2024-05-10 13:34:43', 'login_time': None}]}

总结:如果我们想要使用zdppy_amauth这个框架去实现一个激活用户的接口,那么我们只需要引入amauth.user.active方法并将其使用zdppy_api这个框架挂载到指定路径的接口即可。这个方法,需要传入一个叫做id的路径参数,比如路径可以设计成/auth/user/active/{id}。这个接口方法,除了路径参数以外,不需要接收任何其他参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/611702.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32MP157_程序烧录

STM32MP157_程序烧录 说明: 1、使用emmc作为存储媒介,emmc是核心板上的存储颗粒空间有8GB 2、SD卡作为存储媒介,底板上有SD卡的插槽 emmc方式 软件:烧录软件使用STM32CubeProgrammer 连接线:硬件连接线使用type_c数据线…

RTSP/Onvif安防监控系统EasyNVR级联视频上云系统EasyNVS报错“Login error”的原因排查与解决

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力,能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、W…

jenkins使用gitLab(极狐)认证登陆

jenkins安装 GitLab Authentication插件 我因为java版本和最新GitLab Authentication 1.19版本不兼容,选择了本地安装 找个历史版本1.13版本,然后下载到电脑上 - 本地上传插件并安装 在极狐上创建一个应用 - 配置应用信息 应用名:jenkinsLo…

2024年最新方法下载钉钉群直播回放

链接:百度网盘 请输入提取码 提取码:1234 --来自百度网盘超级会员V10的分享 1.首先解压好所有的压缩包,这个压缩包里面还套着一共逍遥一仙下载器压缩包,也解压 2.进入逍遥一仙下载器文件夹,打开M3U8 V1.4.8 0508.e…

找不到msvcp140.dll无法执行代码的原因分析及修复方法

当用户在尝试运行某些应用程序或游戏时,可能会遇到系统弹出错误提示,显示“找不到msvcp140.dll无法执行代码”这一错误信息,它会导致程序无法正常启动。为了解决这个问题,我经过多次尝试和总结,找到了以下五种解决方法…

宏集Panorama SCADA软件获BACnet BTL认证

Panorama 获得BACnet BTL认证 建筑物的组件(空调系统、照明传感器等)能否使用共同通讯协议?这正是标准化 BACnet协议(Building Automation and Control Networks)所提供的功能。该协议旨在实现建筑物中各种设备和系统…

初探 JUC 并发编程:读写锁 ReentrantReadWriteLock 原理(8000 字源码详解)

本文中会涉及到一些前面 ReentrantLock 中学到的内容,先去阅读一下我关于独占锁 ReentrantLock 的源码解析阅读起来会更加清晰。 初探 JUC 并发编程:独占锁 ReentrantLock 底层源码解析 6.4)读写锁 ReentrantReadWriteLock 原理 前面提到的 R…

谈基于ATTCK框架的攻击链溯源

引言 网络安全在当今数字化时代变得尤为关键,而MITRE公司开发的ATT&CK框架则成为了安全专业人员的重要工具。ATT&CK是一种广泛使用的攻击行为分类和描述框架。其目的在于提供一个共同的语言,使安全专业人员能够更好地理解攻击者的行为和目标&…

整理好了!咸阳市各区县高新技术企业申报奖补标准,高企认定时间流程及申报条件

咸阳市及各区县高企申报奖励 咸阳市:对首次通过认定的高新技术企业给予20万元的奖励,通过复审的企业给予5万元奖励。政策依据:咸阳市人民政府办公室关于印发《咸阳市科技型企业三年倍增计划实施方案(2022—2024年)》的…

如何在您的WordPress网站上安装和设置W3 Total Cache

本周有一个客户,购买Hostease的虚拟主机,询问我们的在线客服,如何在您的WordPress网站上安装和设置W3 Total Cache?我们为用户提供相关教程,用户很快解决了遇到的问题。在此,我们分享这个操作教程&#xff…

【2022 深圳 ArchSummit 】大数据架构稳定性保障实践

文章目录 一、前言二、现状三、大数据架构的历史变迁(一)洪荒期&MR(二)远古期&MPP(四)近现代&Flink/Spark(五)现如今&实时数据湖架构 四、架构稳定的关键因素&#…

学习100个Unity Shader (17) --- 深度纹理

文章目录 效果shader部分C# 部分理解参考 效果 shader部分 Shader "Example/DepthTexture" {SubShader{Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"sampler2D _CameraDepthTexture;struct a2v{float4 pos : POSITIO…

公司活动想找媒体报道宣传怎样联系媒体?

作为公司宣传负责人,我深知媒体报道对于企业活动宣传的重要性。然而,在过去,每当有重要活动需要媒体曝光时,我总会被繁琐的媒体联系工作所困扰。 那时,我需要一家家地查询媒体联系方式,发送邮件、打电话,甚至亲自前往媒体机构进行沟通。然而,这样的过程不仅费时费力,而且效率低…

Linux系统调用过程详解:应用程序调用驱动过程

Linux下应用程序调用驱动程序过程: (1)加载一个驱动模块(.ko),产生一个设备文件,有唯一对应的inode结构体 a、每个设备文件都有一个对应的’inode‘结构体,包含了设备的主次设备号,是设备的唯一…

ChatGLM3-6B部署与微调及微调后使用

记录ChatGLM3-6B部署及官方Lora微调示例详细步骤及如何使用微调后的模型进行推理 一、下载代码 使用git clone 命令下载源码 git clone https://github.com/THUDM/ChatGLM3.git 如图所示 二、下载模型 模型权重文件从魔塔进行下载,不需要翻墙。权重文件比较大&…

搭建知识库必备:12个开源 Wiki 软件工具盘点

在任何成功的公司中,部门间的知识共享是至关重要的。如果没有一个简单的信息交流方法,团队怎样才能有效合作呢?Wiki软件提供了一种创建、组织及在全公司范围内分享知识的直接方法。但是,哪一种Wiki软件是最佳的选择呢?…

【计算机毕业设计】springboot工资管理系统

人类现已迈入二十一世纪,科学技术日新月异,经济、资讯等各方面都有了非常大的进步,尤其是资讯与 网络技术的飞速发展,对政治、经济、军事、文化等各方面都有了极大的影响。 利用电脑网络的这些便利,发展一套工资管理系…

Unity 修复Sentinel key not found (h0007)错误

这个问题是第二次遇到了,上次稀里糊涂的解决了,也没当回事,这次又跑出来了,网上找的教程大部分都是出自一个人。 1.删除这个路径下的文件 C:\ProgramData\SafeNet Sentinel,注意ProgramData好像是隐藏文件 2.在Windows…

Mac安装激活--Typora,一个比记事本更加强大的纯文本软件

一、安装 1.首先到官网下载Mac版的Typora,下载地址:https://typoraio.cn/ (1)打开默认中文站 (2)往下滑,下载Mac版 2.下载完成后,会看到Typora.dmg文件,点击打开文件 3.打开Typ…

mac苹果电脑卡顿反应慢如何解决?2024最新免费方法教程

苹果电脑以其稳定的性能、出色的设计和高效的操作系统,赢得了广大用户的喜爱。然而,随着时间的推移,一些用户会发现自己的苹果电脑开始出现卡顿、反应慢等问题。这不仅影响使用体验,还会影响工作效率。那么,面对这些问…
最新文章