当为GraphQL使用'app.add_route()'时,如何在FastAPI中获取用户身份验证信息?

2024-04-29 15:15:56 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我正在使用:

  • fastapi-user
  • starlette.graphql.GraphQLApp

下面是GraphQL的路由以及我如何使用fastapi用户包

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模式结合使用


Tags: 用户fromimportappincludeschemamygraphql
1条回答
网友
1楼 · 发布于 2024-04-29 15:15:56

我假设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包含会话对象和用户信息

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

相关问题 更多 >