GraphQL の保護
@secureGraphQL デコレーターを使用して、GraphQL integrations へのアクセスを保護します。
このデコレーターを使うと、GraphQL endpoints へのアクセスを簡単に制御でき、認可されたユーザーだけがデータやリソースにアクセスできるようにします。
@secureGraphQL デコレーターを使用すると、デコレートされた関数は GraphqlContext 型(Python では dict)のパラメーターを受け取ります。これにより、
実際の query、variables、operation name などを含む、GraphQL query の完全な context が提供されます。
security function は boolean を返します。true はリクエストを許可し、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 は型付けされた GraphqlContext object です。Python では、security function は同じ
context を、query、variables、operationName などのキーを持つ dict として受け取ります。