page contents

FastAPI-Login:为 FastAPI 打造的一套开箱即用的 JWT 登录方案,自动生成/校验 token

做后端的同学肯定遇到过各种登录校验:Session、Cookie、JWT、OAuth…眼花缭乱。尤其是基于 FastAPI 时,要自己手撸 token 编/解码、中间件、异常处理,写着写着就想跪。FastAPI-Login 这个小插件,帮你把这些重复性工作都封装好,专注业务,效率嗖嗖飙。

attachments-2026-02-h3kXlN046989389e50a99.png做后端的同学肯定遇到过各种登录校验:Session、Cookie、JWT、OAuth…眼花缭乱。尤其是基于 FastAPI 时,要自己手撸 token 编/解码、中间件、异常处理,写着写着就想跪。FastAPI-Login 这个小插件,帮你把这些重复性工作都封装好,专注业务,效率嗖嗖飙。

FastAPI-Login 是个啥?

简而言之,它就是 FastAPI 版的 Flask-Login,提供一套开箱即用的 JWT 登录方案。

核心功能如下:

• 自动生成/校验 token

• 支持 Header 和 Cookie 两种存取方式

• 异常处理可自定义

• Token 过期时间可调

简化流程:不用再手写 jwt.encode/decode,也不用为各种异常挠头。

解决了哪些痛点

• 重复造轮子:不想每个项目都写一大堆 JWT 验证代码

• 安全风险:封装了常见漏洞防范,默认 HTTPOnly Cookie、限时过期

• 可维护性差:全靠你写注释和提醒,一大堆散落在各处的校验逻辑

你只要给它一个 secret key、写一个 user_loader 函数,剩下的交给它就好。

快速上手:安装 & 核心代码

安装非常简单:pip install fastapi-login示例代码(核心部分):from fastapi importFastAPI,Depends

from fastapi_login importLoginManager

from fastapi.security importOAuth2PasswordRequestForm

SECRET ="你的密钥,随时可换"

app =FastAPI()

manager =LoginManager(SECRET, token_url="/auth/token")

# 模拟用户数据库

fake_db ={"alice@example.com":{"password":"123456"}}

@manager.user_loader()

def load_user(email:str):

return fake_db.get(email)

@app.post("/auth/token")

def login(data:OAuth2PasswordRequestForm=Depends()):

    user = load_user(data.username)

    if not user or user["password"]!= data.password:

          raise manager.InvalidCredentialsException

    token = manager.create_access_token(data={"sub": data.username})

    return {"access_token": token,"token_type":"bearer"}

@app.get("/protected")

def protected_route(user=Depends(manager)):

    return {"msg":f"欢迎 {user}"}

几行代码,登录、生成 JWT、保护路由,通通搞定。

进阶功能:Cookie & 过期时间

• 开启 Cookie 验证:

manager = LoginManager(SECRET, token_url="/auth/token", use_cookie=True)

然后用 manager.set_cookie(response, token) 把 token 写进浏览器,自动带上 HTTPOnly。

• 自定义过期:

from datetime import timedelta

token = manager.create_access_token(

    data={"sub": "alice@example.com"},

    expires=timedelta(hours=12)

)

默认 15 分钟,到期自动失效,安全又灵活。

小结

FastAPI-Login 就像你贴身的登录小助手,把那些烦人的 token 编/解、校验、异常都包了起来。无论是简单项目还是中型后台,都能大大节省开发时间。要是想打磨更复杂的权限逻辑,它又不会阻碍你自己扩展。总之,懒人神器、效率利器,两者兼得。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1783 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2228 文章
  3. Pack 1783 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章