python flask 框架实现jwt用户登录 接口权限认证 案例

这篇博客介绍了如何在Python的Flask框架中利用JWT进行用户登录验证,并生成用于接口权限认证的token。讨论了JWT与传统token的区别,指出JWT不需要在服务端存储,依赖于token的自包含性进行校验。通过示例展示了登录接口的测试及未授权和授权访问接口的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:python3.6+

模块:flask、jwt

目的:实现用于登录并返回token令牌,用于后续的接口权限验证。

前言介绍:

jwt(JSON Web Tokens),在用户认证当中常用的方式,在如今的前后端分离项目当中应用广泛,提高了后端代码的简洁和效能。

传统token和jwt区别

  • 传统token:服务端会对登录成功的用户生成一个随机token返回,同时也会在本地保留对应的token(如在数据库中存入:token、用户名、过期时间等),当用户再次访问时,会携带之前的token给服务端进行校验,服务端则通过与本地保留的token进行对比,若寻找到符合条件的token数据,则校验成功

  • jwt验证:服务端会对登录成功的用户生成一个随机token返回,但并不会在服务端本地保留这是jwt和传统token最大的区别),而当用户再次访问时,服务端会基于jwt对token进行校验和解码(由于jwt是基于base64url编码,因此是可以反向解码的,建议不要在token中存放敏感数据

JWT 的官方文档: JSON Web Token Introduction - jwt.io

代码如下:

from flask import g, request, Flask, current_app, jsonify
import jwt
from jwt import exceptions
import functools
import datetime

app = Flask(__name__)

# 处理中文编码
app.config['JSON_AS_ASCII'] = False


# 跨域支持
def after_request(resp):
    resp.headers['Access
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值