Python 实战 · 从 0 到 1 搭建直播视频平台
Barry
某上市公司技术研发总监
3717 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
Python 实战 · 从 0 到 1 搭建直播视频平台
15
15
1.0x
00:00/00:00
登录|注册

28|认证机制:Flask认证机制设计与实现

你好,我是 Barry。
上节课,我们初步了解了 Flask 认证机制,也完成了使用 Token 进行认证的前置工作。在我们的视频直播平台中,也需要通过认证机制来实现用户的平台认证和安全保障。
这节课,我们就进入项目实战环节,巩固一下你对 Flask 认证机制的应用能力。整体流程包括生成 Token、Token 验证、登录认证和用户鉴权这四个环节。
认证的第一步,我们就从生成 Token 开始说起。

生成 Token

上节课,我们学习过 Token 结构,它有三个部分,分别是 header,playload 和 signature。
在项目中我们借助 Flask 的扩展 Flask-JWT 来生成 Token,具体就是使用 JWT.encode 函数将 JSON 对象编码为 JWT Token。因此,我们有必要了解一下 JWT.encode 函数的参数,你可以参考后面我画的思维导图。
你或许注意到了,在 JWT.encode 函数中只传入了 payload 部分。这是因为在使用 JWT.encode 函数时,会自动根据默认算法生成 Header 部分,并将 Header 和 Payload 部分进行签名生成最终的 Token 字符串。我们需要手动指定 Payload 部分。
具体生成 Token 的实现代码是后面这样,你可以参考一下。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Flask认证机制设计与实现文章详细介绍了在Flask应用中实现用户认证和安全保障的方法。首先讲解了生成Token的过程,使用Flask-JWT扩展的JWT.encode函数将JSON对象编码为JWT Token,并详细解释了Token的结构和生成过程。接着,文章介绍了验证Token的方法,借助JWT扩展的decode函数对客户端发送的Token进行解码和验证。最后,文章讲解了用户登录认证的实现流程,包括用户登录验证、生成Token、存储Token到Redis以及记录用户操作日志等步骤。 通过具体的代码示例和解读,本文详细介绍了Flask认证机制的设计与实现过程,涵盖了Token生成、验证和用户登录认证等关键环节。读者可以通过本文快速了解Flask认证机制的应用能力,以及在实际项目中的具体实现方法。文章内容丰富,适合对Flask应用开发感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 实战 · 从 0 到 1 搭建直播视频平台》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 石佛慈悲
    token存在redis里的意义是啥呢,为啥还要校验redis的token,不是解码比对都已经校验了吗?为了控制token失效?

    作者回复: 将token存储在Redis中并进行校验可以增加额外的安全层。这可以帮助防止token被篡改或伪造,从而保护应用程序的安全。同时,通过设置过期时间,可以确保token在一段时间后自动失效,进一步保护用户的安全。 此外,通过校验Redis中的token,可以确保一旦token过期或被撤销,它就不能再被用来访问受保护的资源。这对于管理用户会话和权限非常有用。

    2023-12-05归属地:北京
  • 胡歌衡阳分歌
    这个教程是相当的不完整啊,看的心烦

    作者回复: 是这样同学,在这一节课我们把整体的认证机制梳理下来,以及做了一些小的案例实践,在后边课程中的项目实战会结合这部分内容做项目开发应用,如果单独看目前不太理解,不要让自己丧失信心,接着听后边的课程,会解开你的疑惑。加油

    2023-09-29归属地:湖南
  • peter
    请教老师两个问题: Q1:Config.SECRET_KEY是系统自带的吗? Q2:token放在http的header中的Authorization字段,Authorization字段是http固有的字段吗?记不清楚了,好像应该是自定义字段?

    作者回复: 1、Config.SECRET_KEY 是 Flask 框架中提供的一个系统默认的密钥。在 Flask 应用中,Config.SECRET_KEY 用于加密和保护会话数据,以确保用户会话的安全性。当然,你也可以通过其他方式设置 SECRET_KEY,但无论哪种方式,确保 SECRET_KEY 的安全性是非常重要的,因为它用于保护用户的会话数据和身份验证信息。 2、在 HTTP header 中,确实存在一个名为 "Authorization" 的字段,用于传递身份验证信息和授权令牌。这个字段是 HTTP 协议中预定义的标准字段之一,用于标识客户端的身份验证方式、授权令牌类型以及授权令牌的值。

    2023-06-27归属地:北京
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部