【Python】Python Flask token身份认证(附完整代码)

这篇具有很好参考价值的文章主要介绍了【Python】Python Flask token身份认证(附完整代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Python Flask是一个使用Python编写的轻量级Web应用框架,它可以非常方便地搭建Web应用。在Web应用中,经常需要进行身份认证,以确保只有授权用户才能访问某些资源。本文将介绍如何使用token进行身份认证,以及如何在Python Flask中实现token身份认证。

【Python】Python Flask token身份认证(附完整代码),python,flask,开发语言

一、什么是token身份认证

token身份认证(Token-based authentication)是一种常见的Web身份认证方式,它是利用token来确保用户的身份。每个用户在登录后都会得到一个token,通过该token来识别用户的身份,这种方式可以减少服务器的负担,提高身份认证的效率。在使用token身份认证时,用户成功登录后,服务器会生成一个token,将该token发送给客户端。客户端在后续的请求中,需要在请求头中携带该token,以便服务器可以识别用户的身份。服务器接收到请求后,会从token中解析出用户的身份信息,并对该用户进行身份认证。

二、如何实现token身份认证

在Python Flask中,实现token身份认证需要以下步骤:

1、安装所需的依赖

flask flask_jwt_extended

可以使用pip命令来安装:

pip install flask
pip install flask_jwt_extended
2、创建一个Flask应用

在Python代码中引用flask库,并创建一个Flask应用:

from flask import Flask

app = Flask(__name__)
3、配置密钥

需要在Flask应用中配置一个密钥secret_key,用于生成token和验证token的有效性。可以在Flask应用中添加如下代码:

app.config['JWT_SECRET_KEY'] = 'my_secret_key'

其中,'my_secret_key'可以替换成其他随机字符串。

4、创建用户登录接口

在Flask应用中,需要创建一个接口,用于用户登录,用户输入正确的用户名和密码后,生成一个token,返回给客户端。可以在Flask应用中添加如下代码:

from flask import request, jsonify
from flask_jwt_extended import create_access_token

@app.route('/login', methods=['POST'])
def login():
    username = request.json.get('username', None)
    password = request.json.get('password', None)

    if username != 'admin' or password != 'admin':
        return jsonify({"msg": "Bad username or password"}), 401

    access_token = create_access_token(identity=username)
    return jsonify(access_token=access_token), 200

其中,'/login'是接口路径,使用POST方法,接收用户名和密码。如果用户名或密码错误,则返回401状态码和错误提示。如果用户名和密码正确,则使用create_access_token方法生成一个token,该token的有效期默认设置为15分钟。

5、创建需要身份认证的接口

在Flask应用中,有些接口需要进行身份认证才能访问,可以使用@jwt_required装饰器来实现。可以在Flask应用中添加如下代码:

from flask_jwt_extended import jwt_required, get_jwt_identity

@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
    current_user = get_jwt_identity()
    return jsonify(logged_in_as=current_user), 200

其中,'/protected'是需要身份认证的接口路径,使用GET方法。使用@jwt_required装饰器来表示需要进行token身份认证。在接口中,可以使用get_jwt_identity()方法获取当前用户的身份信息。

6、启动Flask应用

在Python代码中添加如下代码,启动Flask应用:

if __name__ == '__main__':
    app.run(debug=True)

三、完整代码示例

from flask import Flask, request, jsonify
from flask_jwt_extended import create_access_token, jwt_required, get_jwt_identity

app = Flask(__name__)
app.config['JWT_SECRET_KEY'] = 'my_secret_key'

@app.route('/login', methods=['POST'])
def login():
    username = request.json.get('username', None)
    password = request.json.get('password', None)

    if username != 'admin' or password != 'admin':
        return jsonify({"msg": "Bad username or password"}), 401

    access_token = create_access_token(identity=username)
    return jsonify(access_token=access_token), 200

@app.route('/protected', methods=['GET'])
@jwt_required()
def protected():
    current_user = get_jwt_identity()
    return jsonify(logged_in_as=current_user), 200

if __name__ == '__main__':
    app.run(debug=True)

四、总结

本文介绍了如何在Python Flask中使用token进行身份认证。通过以上步骤,可以快速地搭建一个基于token的身份认证系统。在实际应用中,还需要考虑如何管理token的有效性、token的过期时间等问题。文章来源地址https://www.toymoban.com/news/detail-686311.html

到了这里,关于【Python】Python Flask token身份认证(附完整代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在springBoot中使用JWT实现1.生成token,2.接收前端token进行身份认证,3.通过token获取对象信息

    第一步:引入依赖 第二步:创建工具类 在until包下创建TokenUntil类,用于生成token 利用id,和password作为参数生成token JWt为这个包下的对象 第三步:token使用 在向前端返回的数据对象中添加token属性  是serve层中调用工具类方法将生成的token放到返回的数据中 注意:这里获取到

    2024年02月04日
    浏览(65)
  • 3-2. SpringBoot项目集成【用户身份认证】实战 【实战核心篇】基于JWT生成和校验Token

    书接上文 技术选型篇,我们做了【用户身份认证】的技术选型说明,对基于 Session、Token、JWT 的方案进行了详细的对比分析,详细说明了它们都是什么和各自的优缺点!这些是实战的基础,还没看过的同学,建议先看上文。最终采用的是目前流行的 基于JWT的Token用户身份认证

    2023年04月08日
    浏览(46)
  • 3-1. SpringBoot项目集成【用户身份认证】实战 【技术选型篇】基于Session、Token、JWT怎么选?

    通过第二章2-2. SpringBoot API开发详解 --SpringMVC注解+封装结果+支持跨域+打包,我们实现了基于SpringBoot项目的 API接口开发 ,并实现 API结果统一封装、支持跨域请求 等等功能,接下来开始第三章,主要做用户身份认证,主要实现一套 统一鉴权的用户身份认证的机制 。 我已经提

    2024年01月22日
    浏览(52)
  • 钉钉统一身份认证对接前后端代码

    钉钉统一身份认证平台提供了多种对接方式,包括OAuth2.0、SAML、CAS等,其中OAuth2.0是最常用的一种方式。OAuth2.0的对接流程如下: 1.开发人员在钉钉开放平台上创建应用,并获取应用的AppID和AppSecret。 2.在应用的授权回调页面中,添加钉钉授权登录按钮,并将其链接到钉钉授权

    2024年02月02日
    浏览(78)
  • 接口身份认证(Postman+Jmeter+Python)

              1. Basic Auth(基本身份验证)        2. Digest Auth(简单身份认证,HTTP摘要认证)       当服务器想要查证用户的身份,它产生一个摘要盘问(接口文档提供或抓包能抓到),并发送给用户       Digest username=“postman”, realm=“Users”, nonc

    2024年02月12日
    浏览(33)
  • Python+OpenCV人脸识别身份认证系统设计:专栏总述

    本专栏依托于Python编程语言,在内容上尽可能涵盖了人脸识别的各个技术模块,从人脸数据采集、数据预处理、数据分析、人脸识别模型的训练到最后的人脸识别,均有详细的操作步骤和注释代码,能帮助学习者从零开始实现一个应用级别的人脸识别引擎。 专栏分为4部分:

    2023年04月21日
    浏览(42)
  • HTTP身份认证401不同情况下弱口令枚举方法及java代码实现

    大家好,我是ABC_123 。在日常的渗透测试及红队评估项目中,经常遇到http 401身份认证的情况,具体就是访问一个特定目录的时候,会弹出一个要求输入用户名密码的框框。很多朋友会误以为是与tomcat的http basic认证一样,就是把用户名及密码进行了简单的base64加密,然后使用

    2024年01月15日
    浏览(47)
  • Python使用阿里API进行身份证实名认证

    孟莉苹,女,西安工程大学电子信息学院,2021级硕士研究生,张宏伟人工智能课题组 研究方向:机器视觉与人工智能 电子邮件:2425613875@qq.com 凭借领先的人工智能与知识图谱技术,对身份证正反面自动识别,并提取姓名、出生日期、身份证号、住址、性别、民族、发证机关

    2024年02月02日
    浏览(46)
  • 毕业设计:基于Web的统一身份认证信息系统 python

    目录 前言 项目背景 设计思路 2.1 用户口令认证 2.2 基于智能卡的认证 2.3 统一身份认证 相关代码 更多帮助     📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越

    2024年02月21日
    浏览(59)
  • 第83篇:HTTP身份认证401不同情况下弱口令枚举方法及java代码实现(上篇)

    大家好,我是ABC_123 。在日常的渗透测试及红队评估项目中,经常遇到http 401身份认证的情况,具体就是访问一个特定目录的时候,会弹出一个要求输入用户名密码的框框。很多朋友会误以为是与tomcat的http basic认证一样,就是把用户名及密码进行了简单的base64加密,然后使用

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包