3

I'm using FastAPI and now want to add GraphQL using graphene.

I'm using:

  • fastapi-user
  • starlette.graphql.GraphQLApp

Here's the routing for GraphQL and how I used fastapi-user package.

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))
...

In the schema, I need to get user information and control the role based auth.

How to, or how can I use get_current_active_user() method with GraphQL schema?

4

1 回答 1

1

我假设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']

于 2020-10-16T01:42:14.730 回答