在graphene-django中,要在解析方法中访问认证用户,可以通过以下步骤实现:
import graphene
class Query(graphene.ObjectType):
authenticated_user = graphene.Field(graphene.String)
def resolve_authenticated_user(self, info):
user = info.context.user
if user.is_authenticated:
return user.username
else:
return "Anonymous"
在上述示例中,我们定义了一个名为authenticated_user
的解析方法,它返回当前认证用户的用户名。info.context.user
用于获取当前请求的用户对象。
context
传递给GraphQLView。例如:from django.views.decorators.csrf import csrf_exempt
from graphene_django.views import GraphQLView
urlpatterns = [
# ...
path('graphql', csrf_exempt(GraphQLView.as_view(graphiql=True, context={'request': request}))),
# ...
]
在上述示例中,我们将request
对象添加到了context
中,以便在解析方法中可以访问到它。
现在,当你进行GraphQL查询时,可以使用authenticated_user
解析方法来获取当前认证用户的用户名。如果用户已经认证,则返回用户名;否则,返回"Anonymous"。
这是一个简单的示例,你可以根据自己的需求进行扩展和定制。关于graphene-django的更多信息和用法,请参考腾讯云的相关产品文档:graphene-django产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云