使用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路由就会取消用户登录并返回网站首页了。