GraphQL の保護
@secureGraphQL decorator を使用して、GraphQL integration への access を保護します。
この decorator により、GraphQL endpoint への access を簡単に制御し、authorized user のみが data と resource に access できるようにします。
@secureGraphQL decorator を使用する場合、decorate された function は GraphqlContext type の parameter(Python では dict)を受け取ります。これにより、実際の query、variable、operation name などを含む GraphQL query の完全な context が提供されます。
security function は boolean を返します。true は request を許可し、false は拒否します。
- TypeScript
- Python
Backend code
import { secureGraphQL, SquidService, GraphqlContext } from '@squidcloud/backend';
export class ExampleService extends SquidService {
@secureGraphQL('usersGraphQl')
secureUsersGraphQl(context: GraphqlContext): boolean {
// TODO - Implement your security logic here
}
}
Backend code
from squidcloud_backend import SquidService, secure_graphql
class ExampleService(SquidService):
@secure_graphql('usersGraphQl')
def secure_users_graphql(self, context: dict) -> bool:
# TODO - Implement your security logic here
return False
TypeScript では context は type 付きの GraphqlContext object です。Python では security function は、query、variables、operationName などの key を持つ同じ context を dict として受け取ります。