gpt4 book ai didi

python - 将 `app.add_route()` 用于 GraphQL 时,如何在 FastAPI 中获取用户身份验证信息?

转载 作者:行者123 更新时间:2023-12-04 04:09:48 25 4
gpt4 key购买 nike

我正在使用 FastAPI,现在想使用 graphene 添加 GraphQL。

我正在使用:

  • fastapi-user
  • starlette.graphql.GraphQLApp

这是 GraphQL 的路由以及我如何使用 fastapi-user 包。

import fastapi_users
from starlette.graphql import GraphQLApp
from mypackage.schema import my_schema
...

app.include_router(fastapi_users.router, prefix="/users", tags=["users"])
app.include_router(google_oauth_router, prefix="/google-oauth", tags=["users"])
app.add_route("/", GraphQLApp(schema=my_schema))
...

schema 中,我需要获取用户信息并控制基于角色的身份验证。

如何或如何将 get_current_active_user() 方法与 GraphQL 架构一起使用?

最佳答案

我假设 my_schema 继承了 graphene.ObjectType 并且第一个参数是 info,如以下示例所示:

https://fastapi.tiangolo.com/advanced/graphql/

from graphene import ObjectType, String

class Query(ObjectType):
hello = String(name=String(default_value="stranger"))

def resolve_hello(self, info, name):
return "Hello " + name

info 包含带有您的用户信息的 session 对象。

info.context['request'].session['user']

关于python - 将 `app.add_route()` 用于 GraphQL 时,如何在 FastAPI 中获取用户身份验证信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61930695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com