使用fastapi开发新博客,登录使用的是fastapi-login插件,但是这个插件只有登录没有退出登录的功能,所以有了这篇文章。

实现方式很简单就是删掉cookie中的用户信息。

vi /opt/python/lib/python3.11/site-packages/fastapi_login/fastapi_login.py

路径根据自己的python路径修改。

在该文件的305行,也就是set_cookie函数之后添加如下代码:

def remove_cookie(self, response: Response) -> None:
    response.set_cookie(key=self.cookie_name, value="", httponly=True)

然后在网站的路由文件中添加:

@app.get('/logout/')
async def loginout(response: Response):
        manager.remove_cookie(response)
        return RedirectResponse(app.url_path_for("index"))

这样访问logout路由就会取消用户登录并返回网站首页了。