比方說,我有一個包含以下字段的用戶類型:GraphQL:如何跨服務器端查詢字段?
type User {
name: String
username: String
someOtherField1: String
someOtherField2: String
someOtherField3: String
someOtherField4: String
creditCardNumber: String
}
如果我查詢自己,沒關係返回所有領域,因爲這些信息是我的。因此,返回creditCardNumber
到客戶端是沒有什麼大不了的。但是,如果我正在查詢其他人,我應該只能訪問返回的用戶的公共信息。返回creditCardNumber
將是可怕的。即使我沒有在客戶端上編寫查詢代碼,也不會阻止惡意用戶挖掘代碼,將客戶端查詢更新爲包含creditCardNumber
並執行它?
什麼是在GraphQL中跨查詢實現這種級別的字段限制的最佳方式?我對這個唯一的想法到目前爲止是創建一個單獨的UserSearch
型,即
type UserSearch {
name: String
username: String
someOtherField1: String
someOtherField2: String
someOtherField3: String
someOtherField4: String
}
不包括私人領域,但是這並不覺得枯燥你會創造許多類型的在結構上90%相似形成彼此。
是否有一個更清晰的方式來實現這一點,它不會創建不必要的類型或重複的字段?
非常感謝! –
我不敢相信這必須在需要過濾的每個領域的解決方案中處理。 –