Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk melaksanakan pengesahan berasaskan Token Web JSON menggunakan Flask-JWT

Bagaimana untuk melaksanakan pengesahan berasaskan Token Web JSON menggunakan Flask-JWT

Aug 02, 2023 pm 04:43 PM
jwt flask Pengesahan

Cara melaksanakan pengesahan berasaskan Token Web JSON menggunakan Flask-JWT

Ikhtisar:
Dalam aplikasi web moden, keselamatan adalah penting. Salah satu aspek utama ialah pengesahan. Token Web JSON (JWT) ialah standard terbuka untuk meluluskan tuntutan antara aplikasi web. Ia boleh mengesahkan integriti data melalui tandatangan dan melaksanakan pengesahan pengguna berasaskan token.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan sambungan Flask-JWT untuk melaksanakan pengesahan berasaskan Token Web JSON untuk melindungi aplikasi Flask kami.

Pasang Flask-JWT:
Pertama, pastikan anda telah memasang Flask dan Flask-JWT. Ia boleh dipasang menggunakan:

pip install flask
pip install flask-jwt
Salin selepas log masuk

Cara menggunakan:
Flask-JWT menyediakan penghias untuk menambahkan pengesahan token dengan mudah pada fungsi penghalaan Flask. Berikut ialah contoh mudah:

from flask import Flask
from flask_jwt import JWT, jwt_required, current_identity
from werkzeug.security import safe_str_cmp

app = Flask(__name__)
app.config['SECRET_KEY'] = 'super-secret-key'

class User:
    def __init__(self, id, username, password):
        self.id = id
        self.username = username
        self.password = password

    def __str__(self):
        return f'User(id={self.id}, username={self.username})'

users = [
    User(1, 'admin', 'adminpassword'),
]

def authenticate(username, password):
    user = next((user for user in users if user.username == username), None)
    if user and safe_str_cmp(user.password.encode('utf-8'), password.encode('utf-8')):
        return user

def identity(payload):
    user_id = payload['identity']
    return next((user for user in users if user.id == user_id), None)

jwt = JWT(app, authenticate, identity)

@app.route('/protected')
@jwt_required()
def protected():
    return f'Hello, {current_identity}! This route is protected.'

if __name__ == '__main__':
    app.run()
Salin selepas log masuk

Dalam kod contoh di atas, kami mula-mula mengimport modul yang diperlukan. Kemudian, kami mentakrifkan kelas Pengguna untuk mewakili entiti pengguna. Seterusnya, kami mentakrifkan senarai pengguna (dengan andaian pangkalan data) untuk digunakan untuk pengesahan.

Fungsi pengesahan digunakan untuk mengesahkan pengguna berdasarkan nama pengguna dan kata laluan yang disediakan. Fungsi identiti mendapatkan objek pengguna berdasarkan ID pengguna dalam muatan JWT.

Kemudian, kami memulakan aplikasi Flask dan menetapkan kunci rahsia (SECRET_KEY). Kami kemudiannya memulakan objek jwt menggunakan kelas JWT dan menyerahkan fungsi pengesahan dan identiti kepadanya.

Penghias @jwt_required() digunakan pada laluan /protected untuk melindungi laluan. Hanya pengguna yang disahkan boleh mengaksesnya. /protected路由上使用了@jwt_required()装饰器,用于保护该路由。只有经过身份验证的用户才能访问它。

最后,我们启动了Flask应用程序。

进行身份验证:
要进行身份验证,我们需要向应用程序发出HTTP POST请求,传递用户名和密码。Flask-JWT将为我们生成一个JWT令牌。

以下是如何进行身份验证的示例代码:

import requests

def authenticate(username, password):
    response = requests.post('http://localhost:5000/auth', json={'username': username, 'password': password})
    if response.status_code == 200:
        return response.json()['access_token']

access_token = authenticate('admin', 'adminpassword')
print(f'Access Token: {access_token}')
Salin selepas log masuk

在上面的示例中,我们发送了一个HTTP POST请求到/auth路由,传递了用户名和密码的JSON数据。如果身份验证成功,我们将获得一个access_token。

保护的路由将接受该令牌并验证用户身份。下面是如何在请求头中传递令牌的示例:

import requests

headers = {
    'Authorization': f'Bearer {access_token}'
}

response = requests.get('http://localhost:5000/protected', headers=headers)
print(response.text)
Salin selepas log masuk

在上面的示例中,我们将令牌添加到请求头的Authorization字段中,并将其传递给/protected

Akhir sekali, kami melancarkan aplikasi Flask.


Sahkan:

Untuk mengesahkan kami perlu membuat permintaan HTTP POST kepada aplikasi, menghantar nama pengguna dan kata laluan. Flask-JWT akan menjana token JWT untuk kita. 🎜🎜Berikut ialah contoh kod cara untuk mengesahkan: 🎜rrreee🎜Dalam contoh di atas, kami menghantar permintaan HTTP POST ke laluan /auth, menghantar data JSON nama pengguna dan kata laluan. Jika pengesahan berjaya, kami akan mendapat access_token. 🎜🎜Laluan yang dilindungi akan menerima token dan mengesahkan pengguna. Berikut ialah contoh cara untuk menghantar token dalam pengepala permintaan: 🎜rrreee🎜 Dalam contoh di atas, kami menambah token pada medan Authorization pada pengepala permintaan dan menghantarnya kepada / dilindungilaluan. Jika token itu sah, kami akan mendapat respons daripada laluan yang dilindungi. 🎜🎜Ringkasan: 🎜Dalam artikel ini, kami mempelajari cara menggunakan sambungan Flask-JWT untuk melaksanakan pengesahan berasaskan Token Web JSON. Kami mempelajari cara menambah penghias pengesahan dalam aplikasi Flask dan menunjukkan cara untuk mengesahkan dengan kod sampel. Token Web JSON menyediakan mekanisme pengesahan yang mudah dan selamat yang boleh digunakan pada pelbagai aplikasi web. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan berasaskan Token Web JSON menggunakan Flask-JWT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara membina aplikasi web yang ringkas dan mudah digunakan dengan React dan Flask Cara membina aplikasi web yang ringkas dan mudah digunakan dengan React dan Flask Sep 27, 2023 am 11:09 AM

Cara menggunakan React dan Flask untuk membina aplikasi web yang ringkas dan mudah digunakan Pengenalan: Dengan perkembangan Internet, keperluan aplikasi web menjadi semakin pelbagai dan kompleks. Untuk memenuhi keperluan pengguna untuk kemudahan penggunaan dan prestasi, semakin penting untuk menggunakan tindanan teknologi moden untuk membina aplikasi rangkaian. React dan Flask ialah dua rangka kerja yang sangat popular untuk pembangunan bahagian hadapan dan belakang, dan ia berfungsi dengan baik bersama-sama untuk membina aplikasi web yang ringkas dan mudah digunakan. Artikel ini akan memperincikan cara memanfaatkan React dan Flask

Django vs. Flask: Analisis perbandingan rangka kerja web Python Django vs. Flask: Analisis perbandingan rangka kerja web Python Jan 19, 2024 am 08:36 AM

Django dan Flask adalah kedua-duanya peneraju dalam rangka kerja Web Python, dan kedua-duanya mempunyai kelebihan dan senario yang boleh digunakan. Artikel ini akan menjalankan analisis perbandingan kedua-dua rangka kerja ini dan memberikan contoh kod khusus. Pengenalan Pembangunan Django ialah rangka kerja Web berciri penuh, tujuan utamanya adalah untuk membangunkan aplikasi Web yang kompleks dengan cepat. Django menyediakan banyak fungsi terbina dalam, seperti ORM (Pemetaan Hubungan Objek), borang, pengesahan, bahagian belakang pengurusan, dsb. Ciri-ciri ini membolehkan Django mengendalikan besar

Bagaimana untuk melumpuhkan pengesahan penyemakan imbas peribadi dalam Safari: Panduan cara untuk iOS 17 Bagaimana untuk melumpuhkan pengesahan penyemakan imbas peribadi dalam Safari: Panduan cara untuk iOS 17 Sep 11, 2023 pm 06:37 PM

Dalam iOS 17, Apple memperkenalkan beberapa ciri privasi dan keselamatan baharu kepada sistem pengendalian mudah alihnya, salah satunya adalah keupayaan untuk memerlukan pengesahan dua langkah untuk tab penyemakan imbas peribadi dalam Safari. Begini cara ia berfungsi dan cara mematikannya. Pada iPhone atau iPad yang menjalankan iOS 17 atau iPadOS 17, jika anda mempunyai sebarang tab Penyemakan Imbas Peribadi yang dibuka di Safari dan kemudian keluar dari sesi atau apl, penyemak imbas Apple kini memerlukan pengesahan Face ID/TouchID atau kod laluan untuk mengaksesnya semula. Dalam erti kata lain, jika seseorang mendapatkan iPhone atau iPad anda semasa ia dibuka kunci, mereka masih tidak akan dapat melihatnya tanpa mengetahui kod laluan anda

Mulakan dari awal dan bimbing anda langkah demi langkah untuk memasang Flask dan segera buat blog peribadi Mulakan dari awal dan bimbing anda langkah demi langkah untuk memasang Flask dan segera buat blog peribadi Feb 19, 2024 pm 04:01 PM

Bermula dari awal, saya akan mengajar anda langkah demi langkah cara memasang Flask dan cepat membina blog peribadi Sebagai seorang yang suka menulis, mempunyai blog peribadi adalah sangat penting. Sebagai rangka kerja Web Python yang ringan, Flask boleh membantu kami membina blog peribadi yang ringkas dan berfungsi sepenuhnya dengan cepat. Dalam artikel ini, saya akan bermula dari awal dan mengajar anda langkah demi langkah cara memasang Flask dan membina blog peribadi dengan cepat. Langkah 1: Pasang Python dan pip Sebelum bermula, kita perlu memasang Python dan pi terlebih dahulu

Panduan untuk memasang rangka kerja Flask: Langkah terperinci untuk membantu anda memasang Flask dengan betul Panduan untuk memasang rangka kerja Flask: Langkah terperinci untuk membantu anda memasang Flask dengan betul Feb 18, 2024 pm 10:51 PM

Tutorial pemasangan rangka kerja Flask: Ajar anda langkah demi langkah cara memasang rangka kerja Flask dengan betul. Contoh kod khusus diperlukan. Ia mudah dipelajari, mudah digunakan dan padat dengan ciri yang hebat. Artikel ini akan membawa anda langkah demi langkah untuk memasang rangka kerja Flask dengan betul dan memberikan contoh kod terperinci untuk rujukan. Langkah 1: Pasang Python Sebelum memasang rangka kerja Flask, anda perlu terlebih dahulu memastikan bahawa Python dipasang pada komputer anda. Anda boleh bermula dari P

Flask vs FastAPI: Pilihan terbaik untuk pembangunan API Web yang cekap Flask vs FastAPI: Pilihan terbaik untuk pembangunan API Web yang cekap Sep 27, 2023 pm 09:01 PM

FlaskvsFastAPI: Pilihan terbaik untuk pembangunan WebAPI yang cekap Pengenalan: Dalam pembangunan perisian moden, WebAPI telah menjadi bahagian yang sangat diperlukan. Mereka menyediakan data dan perkhidmatan yang membolehkan komunikasi dan saling kendali antara aplikasi yang berbeza. Apabila memilih rangka kerja untuk membangunkan WebAPI, Flask dan FastAPI ialah dua pilihan yang telah menarik banyak perhatian. Kedua-dua rangka kerja sangat popular dan masing-masing mempunyai kelebihan tersendiri. Dalam artikel ini, kita akan melihat Fl

Membandingkan prestasi Gunicorn dan uWSGI untuk penggunaan aplikasi Flask Membandingkan prestasi Gunicorn dan uWSGI untuk penggunaan aplikasi Flask Jan 17, 2024 am 08:52 AM

Penggunaan aplikasi flask: Perbandingan Gunicorn vs suWSGI Pengenalan: Flask, sebagai rangka kerja Web Python yang ringan, disukai oleh banyak pembangun. Apabila menggunakan aplikasi Flask ke persekitaran pengeluaran, memilih Antara Muka Gerbang Pelayan (SGI) yang sesuai adalah keputusan penting. Gunicorn dan uWSGI ialah dua pelayan SGI biasa Artikel ini akan menerangkannya secara terperinci.

Django, Flask dan FastAPI: Rangka kerja manakah yang sesuai untuk pemula? Django, Flask dan FastAPI: Rangka kerja manakah yang sesuai untuk pemula? Sep 27, 2023 pm 09:06 PM

Django, Flask dan FastAPI: Rangka kerja manakah yang sesuai untuk pemula? Pengenalan: Dalam bidang pembangunan aplikasi web, terdapat banyak rangka kerja Python yang sangat baik untuk dipilih. Artikel ini akan menumpukan pada tiga rangka kerja yang paling popular, Django, Flask dan FastAPI. Kami akan menilai ciri mereka dan membincangkan rangka kerja yang terbaik untuk digunakan oleh pemula. Pada masa yang sama, kami juga akan menyediakan beberapa contoh kod khusus untuk membantu pemula lebih memahami rangka kerja ini. 1. Django: Django

See all articles