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

AI掘金头条新闻系统 (Toutiao News)-用户注册-生成Token

1.crud/users.py# 生成 Token async def create_token(db: AsyncSession, user_id: int): # 生成 Token token str(uuid.uuid4()) # 设置过期时间 expires_at datetime.now() timedelta(days7) # 查询数据库当前用户是否有 Token query select(UserToken).where(UserToken.user_id user_id) result await db.execute(query) user_token result.scalar_one_or_none() # 有更新 if user_token: user_token.token token user_token.expires_at expires_at await db.commit() # 没有 添加 else: user_token UserToken(user_iduser_id, tokentoken, expires_atexpires_at) db.add(user_token) await db.commit() return token2.routers/users.py# 生成 Token token await users.create_token(db, user.id)完整代码from fastapi import APIRouter from fastapi.params import Depends from sqlalchemy.ext.asyncio import AsyncSession from common.result import Result from config.db_confing import get_db from schemas.users import UserRequest from crud import users router APIRouter(prefix/api/user, tags[users]) # 用户注册 router.post(register) async def register(user_data: UserRequest, db: AsyncSession Depends(get_db)): # 根据用户名查询数据库 db_user await users.get_user_by_username(db, user_data.username) if db_user: return Result.error(用户已存在, 400) # 新增用户 user await users.create_user(db, user_data) # 生成 Token token await users.create_token(db, user.id) return { code: 200, message: 注册成功, data: { token: token, userInfo: { id: user.id, username: user_data.username, bio: user.bio, avatar: user.avatar } } }
http://www.zskr.cn/news/1382793.html

相关文章:

  • 大连GEO优化公司全域实践解析——即搜AI(大连运营中心)的合规化GEO优化路径 - 品牌评测官
  • 2026武汉名包回收哪家强?别再被坑了,听我句劝! - 奢侈品回收测评
  • 国科安芯AS32A601芯片及ANSIC-EVB601开发平台获OneWo-zepLinux全面适配支持
  • 12周小学期任务进度
  • 肖有米开发团队:推三返一模式系统开发-推三返一商业平台小程序介绍
  • 接口测试用例设计:超详细防御体系与分层校验实践
  • 为 Node.js 后端服务接入 Taotoken 多模型 API 的详细步骤
  • 单机部署DeepSeek-R1-32B,实测吞吐达114 tokens/sec(附完整Prometheus+Grafana监控看板配置)
  • OpenSSH scp命令注入漏洞CVE-2020-15778深度解析与三层防御
  • Java Core 50 个顶级求职面试问题与答案。第二部分
  • Topit:如何在Mac上实现一键窗口置顶,让多任务处理效率翻倍?
  • 机器学习势函数进阶:Hessian矩阵训练如何提升分子模拟精度与数据效率
  • 基于ATMega8的可编程定时器设计与实现:从精准时基到循环控制
  • 零基础怎么学Agent?这个工程师考试内容拆给你看
  • 天文时序数据分析:机器学习评估、半监督学习与无监督方法实战
  • 别再只盯着多边形了!用Unity 2022 LTS手把手教你实现一个简单的体素化渲染器(附完整项目)
  • 基于Cynthion逆向USB协议,为DP100电源开发Linux控制软件
  • LLM赋能小样本材料科学:数据插补、语义编码与SVM泛化实战
  • 影刀RPA跨境店群自动化:从Chromium底层调度到分布式容器化运营的架构演进
  • 2026年家居定制市场解析:全屋定制性价比的多维度观察 - 产品测评官
  • Firefox 与 Adafruit 合作:无需安装程序,在浏览器中轻松实现硬件编程!
  • 量子自编码器与Qudit VQC:混合量子-经典机器学习处理大规模时序数据
  • Frida实战指南:Java/So层Hook、RPC与群控的工程化落地
  • DDR专题-CK 时钟、MT/s 与带宽的关系
  • 企业内网应用通过 Taotoken 安全调用大模型 API 的实践方案
  • PDF4QT:免费开源的全能PDF工具箱,轻松解决你的文档处理难题
  • 游戏开发中的‘魔法’:用复数(或四元数)轻松搞定角色朝向与平滑旋转
  • AI模型训练能耗激增背后的回弹效应与绿色计算挑战
  • AI原生求职时代来了|2026校招报告:95%应届生用AI求职,企业面临三大挑战 - 嘻哩哩女王在行动
  • Burp Suite拦截机制深度解析:从HTTP/HTTPS协议层到请求重放一致性