Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

375
Visualizações
Cómo implementar OAuth en FastAPI con ID y secreto de cliente

He seguido los documentos sobre Oauth2 pero no describe el proceso para agregar la identificación y el secreto del cliente.

https://fastapi.tiangolo.com/advanced/security/oauth2-scopes/

y que hace esto

 class UserInDB(User): hashed_password: str

del ejemplo original

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

En la documentación, utiliza OAuth2PasswordRequestForm para autenticar al usuario. Esta clase tiene básicamente 6 campos diferentes,

 grant_type: str = Form(None, regex="password"), username: str = Form(...), password: str = Form(...), scope: str = Form(""), client_id: Optional[str] = Form(None), client_secret: Optional[str] = Form(None),

Entonces puede agregar client_id y client_secret , si está interesado en el Repositorio aquí.

Pero normalmente prefiero authlib , ahorra mucho tiempo y lo hace más fácil. Aquí hay un ejemplo completo de cómo puede crear un OAuth con authlib

Primero cree un cliente OAuth

 from authlib.integrations.starlette_client import OAuth from starlette.config import Config config = Config('.env') # read config from .env file oauth = OAuth(config) oauth.register( name='google', server_metadata_url='https://accounts.google.com/.well-known/openid-configuration', client_kwargs={ 'scope': 'openid email profile' } )

No necesitamos agregar client_id y client_secret aquí, porque están en el archivo .env. Se supone que no debe codificarlos en el código de los productos reales. Google tiene un punto final de descubrimiento de OpenID, podemos usar esta URL para server_metadata_url . Authlib buscará automáticamente este server_metadata_url para configurar el cliente de OAuth por usted.

Ahora crearemos una aplicación FastAPI para definir una ruta de inicio de sesión.

 from fastapi import FastAPI, Request from starlette.middleware.sessions import SessionMiddleware app = FastAPI() app.add_middleware(SessionMiddleware, secret_key="secret-string")

Necesitamos este SessionMiddleware, porque Authlib usará request.session para almacenar códigos y estados temporales. El siguiente código, que es /login de sesión, lo redirigirá al sitio web de la cuenta de Google.

 @app.route('/login') async def login(request: Request): redirect_uri = request.url_for('auth') return await oauth.google.authorize_redirect(request, redirect_uri

Cuando otorga acceso desde el sitio web de Google, Google lo redirigirá a su redirect_uri dado, que es request.url_for('auth') :

 @app.route('/auth') async def auth(request: Request): token = await oauth.google.authorize_access_token(request) user = await oauth.google.parse_id_token(request, token) return user

El código anterior obtendrá un token que contiene access_token e id_token. Un id_token contiene información del usuario, solo necesitamos analizarlo para obtener la información del usuario de inicio de sesión.

Fuentes: Authlib-FastAPI-Google-Iniciar sesión

Además, si aún desea usar Pure FastAPI, consulte este enlace FastAPI OAuth2PasswordRequestForm

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda