「博客应用」使用 Flask-Login 实现用户认证

作者&投稿:成贴 (若有异议请与网页底部的电邮联系)
~ 在 SuzyBlog 的博客应用中,我们将实现用户认证功能,使用 Flask-Login 管理用户登录和登出。首先,确保下载 SuzyBlog 的源代码,以配合本文的学习。

在前文中,虽然已经构建了博客前台,但用户登录状态的判断是基于模拟数据。接下来,我们将重点关注Admin用户的登录登出功能。

1. 安全存储用户密码

为了保护用户隐私,不能明文存储数据库中的密码。使用 werkzeug.security 提供的 generate_password_hash 函数生成散列值,通过 salt 增加随机性,即使泄露也难以逆向获取密码。Admin模型中,通过 password 特性属性和 validate_password 方法来处理这些操作。

2. 注册命令行初始化Admin

SuzyBlog 不在网页上提供注册功能,而是通过自定义命令行工具初始化Admin用户。flask init-admin 命令行允许用户输入用户名和密码,通过 click 模块的密码装饰器保护用户输入。

3. Flask-Login用户认证

在应用中,Flask-Login 被用于区分管理员(如使用admin账号登录)和普通访客。创建 LoginManager 实例,设置用户加载函数,使用current_user变量记录登录状态。用户登录后,可以在模板中轻松访问当前用户信息。

3.1 登录管理

创建login视图处理登录请求,验证用户身份。登录成功后,用户将被重定向回首页。同时,我们为模板的页脚添加了登录/登出链接,使用query参数next来记录用户来源。

3.2 登入与登出操作

login视图中,处理表单提交并验证用户信息,login_user函数用于登录,logout_user用于登出。登录后,用户ID会保存在session中,而登出则删除这些信息。

3.3 视图保护

使用@login_required装饰器保护需要登录的视图,未登录用户将被重定向至登录页面。蓝本的@before_request装饰器可以为蓝本下的所有视图提供登录保护。

至此,Flask-Login的使用帮助我们完善了用户认证流程,使得SuzyBlog的权限管理更加安全和有序。


申扎县18587793491: 我为什么不用Django而用Flask -
聂竿倍司: django更加适合新手,因为里面有很多里面集成了很多可用的模块. 而flask需要去自己找合适的模块. 所以django更适合新手,而flask适合比较熟悉web框架的人,比较灵活.

申扎县18587793491: 新浪博客的Flash插件如何使用?
聂竿倍司: 1、选择管理博客;2、在“个人首页维护”中选择“定制首页的内容”;3、选择左侧的“添加模块”;4、创建新的空白面板;5、勾上显示源码,粘贴代码;6、保存后,选中新创建的模块.选取后,保存即可.

申扎县18587793491: 新浪博客的播放器怎样使用? -
聂竿倍司: 今天有朋友问我如何编辑音乐列表,所以现在我将编辑音乐播放列表的步骤写出来,以供众博友借鉴参考. 使用播放器首先选择安装新浪配置的播放器,然后添加歌曲,添加歌曲的步骤如下: 1)打开“管理博客; 2)打开“个人首页维护”; ...

申扎县18587793491: 天涯博客的Flash插件如何使用?
聂竿倍司: 1、进入博客管理,选择模版;2、选择自定义模版; 3、在您想放插件的栏目之间加入插件代码=》保存=》返回查看效果.

申扎县18587793491: 搜狐博客中的Flash插件如何使用?
聂竿倍司: 1、选择管理个人档案=》管理个人档案;2、在主人档案处插入代码,保存.

申扎县18587793491: 网易博客的Flash插件如何使用?
聂竿倍司: 1、设置=》开始装扮博客;2、设置首页内容;3、添加自定义模块; 4、直接粘贴代码,保存即可.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网