Python 使用graphene和SQLalchemy设置GraphQL权限的热键
我的graphene模式中有客户、用户、项目和旅行:Python 使用graphene和SQLalchemy设置GraphQL权限的热键,python,flask,sqlalchemy,graphql,graphene-python,Python,Flask,Sqlalchemy,Graphql,Graphene Python,我的graphene模式中有客户、用户、项目和旅行: class Clients(SQLAlchemyObjectType): class Meta: model = ClientModel interfaces = (relay.Node, ) class Users(SQLAlchemyObjectType): class Meta: model = UserModel interfaces = (relay.
class Clients(SQLAlchemyObjectType):
class Meta:
model = ClientModel
interfaces = (relay.Node, )
class Users(SQLAlchemyObjectType):
class Meta:
model = UserModel
interfaces = (relay.Node, )
class Projects(SQLAlchemyObjectType):
class Meta:
model = ProjectModel
interfaces = (relay.Node, )
class Trips(SQLAlchemyObjectType):
class Meta:
model = TripModel
interfaces = (relay.Node, )
我想做的是设置权限,以便某人传递与某个特定客户端匹配的访问令牌,并仅显示该特定客户端的用户、项目和行程
如何做到这一点?石墨烯上有什么方法可以做到这一点吗?我是用flask\u httpauth做的:
from flask_httpauth import HTTPTokenAuth
@auth.verify_token
def verify_token(token):
for client in ClientModel.query.all():
if client.access_token == token:
g.current_user = client
return True
return False
然后我只需在我的查询类的每个resolve\u
函数上放置login\u required
装饰器,如下所示:
@auth.login_required
def resolve_clients(self, info):
current_client = g.current_user
for client in ClientModel.query.all():
if client.id == current_client.id:
return client
return None