Cara menggunakan OAuth2 dalam FastAPI untuk kebenaran log masuk pihak ketiga
Pengenalan:
Dalam aplikasi web, log masuk pengguna ialah ciri biasa. Walau bagaimanapun, untuk memberikan pengalaman pengguna yang lebih baik dan kaedah pendaftaran/log masuk yang mudah, banyak aplikasi memilih untuk menyepadukan kebenaran log masuk pihak ketiga. OAuth2 ialah protokol kebenaran log masuk pihak ketiga biasa yang membenarkan pengguna menggunakan akaun pihak ketiga sedia ada mereka untuk log masuk ke aplikasi tanpa membuat akaun baharu. Dalam artikel ini, kami akan memperkenalkan cara menggunakan OAuth2 dalam rangka kerja FastAPI untuk kebenaran log masuk pihak ketiga.
Langkah 1: Pasang perpustakaan bergantung
Sebelum kita mula, kita perlu memasang beberapa perpustakaan bergantung yang diperlukan. Gunakan arahan berikut untuk memasangnya:
pip install fastapi[all] pip install oauthlib[all] pip install python-jose[cryptography]
Langkah Kedua: Cipta Pelayan Kebenaran OAuth2
Pertama, kita perlu mencipta Pelayan Kebenaran OAuth2. Ini boleh dicapai menggunakan kelas OAuth2PasswordBearer yang disediakan oleh pustaka fastapi.security
. fastapi.security
库提供的OAuth2PasswordBearer类来实现。
from fastapi import FastAPI, Depends from fastapi.security import OAuth2PasswordBearer from pydantic import BaseModel app = FastAPI() oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") @app.get("/items/") def read_items(token: str = Depends(oauth2_scheme)): return {"token": token}
在上述代码中,我们创建了一个FastAPI应用,并在/items/
路由上使用OAuth2PasswordBearer
类进行身份验证。OAuth2PasswordBearer
类需要一个tokenUrl
参数,用于指定用于获取访问令牌的端点。
步骤三:注册第三方登录服务提供商
在使用第三方登录授权之前,我们需要先在所使用的OAuth2服务提供商注册应用程序,并获取相应的客户端ID和客户端密钥。这些凭据将用于后续的身份验证过程。
步骤四:实现第三方登录授权流程
接下来,我们需要编写代码来实现第三方登录授权的流程。以下是一个简单的示例:
from fastapi import FastAPI from fastapi.security import OAuth2AuthorizationCodeBearer app = FastAPI() oauth2_scheme = OAuth2AuthorizationCodeBearer("/login/callback") @app.get("/login") def login(): authorize_url = "https://oauth2.provider.com/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=http://yourapp.com/login/callback" return {"authorize_url": authorize_url} @app.get("/login/callback") def login_callback(code: str): # exchange code for access token token = "access_token" return {"token": token}
在上述代码中,我们首先定义一个/login
路由,这个路由将提供一个URL给前端用户进行第三方登录授权。用户在访问这个URL之后,将被重定向到OAuth2提供商的授权页面。在授权页面上,用户将被要求选择是否授权应用访问其账户,并获得一个授权码。
用户授权后,将被重定向到/login/callback
路由,并将授权码作为参数传递给该路由。接下来,我们需要使用授权码来获取访问令牌。在真实的应用程序中,这个过程需要与OAuth2服务提供商的API进行交互。
最后,我们可以返回访问令牌给前端用户,并在后续的请求中使用它进行身份验证。
总结:
本文介绍了如何在FastAPI框架中使用OAuth2进行第三方登录授权。通过使用fastapi.security
rrreee
OAuth2PasswordBearer
pada laluan /items/
untuk pengesahan. Kelas OAuth2PasswordBearer
memerlukan parameter tokenUrl
yang menentukan titik akhir yang digunakan untuk mendapatkan token akses. 🎜🎜Langkah 3: Daftar penyedia perkhidmatan log masuk pihak ketiga🎜🎜Sebelum menggunakan kebenaran log masuk pihak ketiga, kami perlu mendaftarkan aplikasi dengan pembekal perkhidmatan OAuth2 yang digunakan dan mendapatkan ID pelanggan dan kunci pelanggan yang sepadan. Bukti kelayakan ini akan digunakan dalam proses pengesahan seterusnya. 🎜🎜Langkah 4: Laksanakan proses kebenaran log masuk pihak ketiga🎜🎜Seterusnya, kita perlu menulis kod untuk melaksanakan proses kebenaran log masuk pihak ketiga. Berikut ialah contoh mudah: 🎜rrreee🎜Dalam kod di atas, kami mula-mula menentukan laluan fastapi.security
, kami boleh melaksanakan pelayan kebenaran dan aliran kebenaran log masuk pihak ketiga dengan mudah. Pada masa yang sama, kami juga perlu mendaftarkan pembekal perkhidmatan OAuth2 dan mendapatkan ID klien dan kunci klien yang sepadan. Saya harap artikel ini dapat membantu anda melaksanakan fungsi kebenaran log masuk pihak ketiga dengan jayanya. 🎜Atas ialah kandungan terperinci Cara menggunakan OAuth2 untuk kebenaran log masuk pihak ketiga dalam FastAPI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!