我正在使用 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/