python3 Flask jwt 简易token认证实例

这篇具有很好参考价值的文章主要介绍了python3 Flask jwt 简易token认证实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 直接上代码

from flask import Flask, jsonify, request, make_response
import jwt
import datetime
from functools import wraps

app = Flask(__name__)

# 这是一个示例密钥,实际应用中应该使用一个复杂且随机的密钥
app.config['SECRET_KEY'] = 'your_secret_key'

def token_required(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        token = None
        if 'Authorization' in request.headers:
            auth_header = request.headers['Authorization']
            if auth_header.startswith('Bearer '):
                token = auth_header.split(" ")[1]  # 分割"Bearer "和token

        if not token:
            return jsonify({'message': 'Token is missing!'}), 403

        try:
            data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"])
        except:
            return jsonify({'message': 'Token is invalid!'}), 403

        return f(*args, **kwargs)
    return decorated

@app.route('/unprotected')
def unprotected():
    return jsonify({'message': 'Anyone can view this!'})

@app.route('/protected')
@token_required
def protected():
    return jsonify({'message': 'This is only available for people with valid tokens.'})

@app.route('/login')
def login():
    auth = request.authorization
    if auth and auth.password == 'password':
        token = jwt.encode({
            'user': auth.username,
            'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=30)
        }, app.config['SECRET_KEY'])

        return jsonify({'token': token})

    return make_response('Could not verify!', 401, {'WWW-Authenticate': 'Basic realm="Login Required"'})

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

测试,登录,获取token

curl -u username:password http://127.0.0.1:5000/login

返回

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoidXNlcm5hbWUwIiwiZXhwIjoxNzA4MzkyNjg5fQ.0Xq-GFufOTnLSkdqT42wVcF0QPe70z6tlxepwWzHf7Y"
}

python3 Flask jwt 简易token认证实例,flask,python,后端,chatgpt,jwt,token 

用token 测试/protected

curl -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoidXNlcm5hbWUwIiwiZXhwIjoxNzA4MzkyNjg5fQ.0Xq-GFufOTnLSkdqT42wVcF0QPe70z6tlxepwWzHf7Y" http://127.0.0.1:5000/protected

返回信息

{
  "message": "This is only available for people with valid tokens."
}

python3 Flask jwt 简易token认证实例,flask,python,后端,chatgpt,jwt,token 

chatgpt写的代码文章来源地址https://www.toymoban.com/news/detail-835787.html

到了这里,关于python3 Flask jwt 简易token认证实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Flask 高级应用:使用蓝图模块化应用和 JWT 实现安全认证

    本文将探讨 Flask 的两个高级特性:蓝图(Blueprints)和 JSON Web Token(JWT)认证。蓝图让我们可以将应用模块化,以便更好地组织代码;而 JWT 认证是现代 Web 应用中常见的一种安全机制。 在大型应用中,一个单独的 Python 文件可能无法容纳所有的路由和视图函数。这时,Flask 的

    2024年02月13日
    浏览(33)
  • python3处理docx并flask显示

    最近有需求处理docx文件,并讲内容显示到页面,对world进行在线的阅读,这样我这里就使用flask+Document对docx文件进行处理并显示,下面直接上代码: 首先下载Document的库文件,先直接安装最新版的python-docx,如果不行则换成1.1.0版本: 处理docx代码如下: 上述代码会对docx文件

    2024年02月03日
    浏览(24)
  • python flask 令牌token原理及代码实现

    觉得废话多,可以直接看代码 代码参考:http://t.csdn.cn/Sf8km 令牌token解决了什么问题 解决http请求无状态的特性,让每次请求都有状态,知道请求是哪个用户发来的 首先要知道,http请求是无状态的 也就是说,即使是同一个人发送的两次请求,服务器也是不知道是同一个人过来

    2024年02月12日
    浏览(28)
  • python3-Flask实现Api接口

    1、:python3-Flask实现Api接口_flask api_Shiro to kuro的博客-CSDN博客 2、  Flask框架的web开发01(Restful API接口规范)_flask patch post_~须尽欢的博客-CSDN博客

    2024年02月11日
    浏览(22)
  • Python3 flask-socketio 整合vue

    前端追加了vue-socket.io的依赖 更新package.json及package-lock.json后,需要补充库 服务端需要安装的python包 suse python 3.6.12 windows python 3.8.10 https://pypi.org/ 如有网环境,可以采用以下安装方式: 先在有网环境下,PyCharm工具里面下载,如下图: 然后在无网环境下直接使用现成的即可:

    2024年02月08日
    浏览(31)
  • 从零用python flask框架写一个简易的网站

    要用Python写一个网站,你可以使用Python的Web框架来开发。常见的Python Web框架包括Django、Flask、Bottle等。以下是一个简单的使用Flask框架开发的示例。 在开始开发之前,你需要安装Flask框架。你可以使用以下命令来安装: 在安装完Flask之后,你可以创建一个Flask应用。以下是一个

    2024年02月12日
    浏览(31)
  • python Flask 写一个简易的 web 端上传文件程序 (附demo)

    在当今数字化时代,文件上传需求日益普遍。无论是个人还是企业,都可能需要实现文件上传功能。为此,本文将分享如何使用Python Flask框架创建一个简易的Web端上传文件程序。 需要源码的留下邮箱,私信也会看,不过看的不勤,留言有通知。 Flask 是一个用于构建 Web 应用程

    2024年04月16日
    浏览(40)
  • python3 flask 实现对config.yaml文件的内容的增删改查,并重启服务

     config.yaml配置文件内容 功能就是userpass下的用户名和密码做增删改查,并重启hy2服务 直接上代码 add功能,带验证 del功能   查询功能  代码完成:chatgpt4 

    2024年02月22日
    浏览(35)
  • Flask 使用 JWT(一)

    下面是一些 JWT 的使用场景: 1、 授权:这是 JWT 最常的使用场景。一旦用户登录,后续的每个请求都必须携带 JWT ,允许用户携带 Token 访问所有的路由、服务器和资源。单点登录时目前使用最广泛的一个场景,因为它开销小并且能够轻易的实现跨域访问。 2、信息交换:JWT

    2024年02月07日
    浏览(29)
  • flask-cache使用报错Python3 ModuleNotFoundError: No module named ‘werkzeug.contrib‘

    Flask              2.1.2 Flask-Cache        0.13.1 Werkzeug           2.1.2 当使用了flask_cache时导致运行时问题出现:ModuleNotFoundError: No module named \\\'werkzeug.contrib\\\' 1、修改文件/Users/zhangyanli/.pyenv/versions/flaskenv/lib/python3.7/site-packages/flask_cache/__init__.py。将上一行改为下一行 【备注】这个

    2024年02月09日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包