Size: a a a

GraphQL — русскоговорящее сообщество

2019 June 28

U

Uxname in GraphQL — русскоговорящее сообщество
Alex
привет! Ребят, какие есть варианты сделать приватные роуты в graphql ?
закрой их токеном в хедере
источник

A

Alex in GraphQL — русскоговорящее сообщество
я и передаю токен в хедере, проблема в том что часть резолверов - открытая, а часть приватная
источник

A

Alex in GraphQL — русскоговорящее сообщество
как это можно хендлить на уровне резолвера (кроме банальной копипасты)
источник

U

Uxname in GraphQL — русскоговорящее сообщество
в контексте можно
источник

U

Uxname in GraphQL — русскоговорящее сообщество
но лучше наверное разделить приватное и публичное api
источник

A

Alex in GraphQL — русскоговорящее сообщество
то есть два сервака делать грубо говоря ?
источник

U

Uxname in GraphQL — русскоговорящее сообщество
ну смотря что под серваком подразумевается, но да, два бэка грубо говоря
источник

A

Alex in GraphQL — русскоговорящее сообщество
а есть вариант достать роут, к которому обращаются из req?
источник

A1

Art 141 in GraphQL — русскоговорящее сообщество
Alex
привет! Ребят, какие есть варианты сделать приватные роуты в graphql ?
У нас у пользователей могут быть разные роли. Их проверяем через middleware. Но у нас python, не знаю есть ли нормальные аналоги на чем вы там пишите.
источник

A

Alex in GraphQL — русскоговорящее сообщество
на нод
источник

AL

Andrii Los in GraphQL — русскоговорящее сообщество
Мое мнение насчет скрывать/показывать с точки зрения безопасности примерно такое.
Если твое приложение можно захачить только узнав форматы и типы ответов, значит твое секьюрити полное говно.
Если АПИ публичный и им должны пользоваться, то тогда делай отдельный апи, если апи публичный, но никто им пользоваться не должен, просто выключай интроспекцию и все ИМХО.
источник

A1

Art 141 in GraphQL — русскоговорящее сообщество
Если не хотите даже схему показывать, то лучше разные роуты сделать.
источник

A

Alex in GraphQL — русскоговорящее сообщество
да схема то пускай будет известна, просто что бы без токена туда нельзя было “попасть”
источник

AL

Andrii Los in GraphQL — русскоговорящее сообщество
А, ну так, я думаю можно отстреливать сразу при создании контекста. Точно не скажу как, но должна быть такая возможность.
источник

A

Alex in GraphQL — русскоговорящее сообщество
понял, думаю да, надо копать на том уровне
источник

A

Alex in GraphQL — русскоговорящее сообщество
спасибо всем за ответы )
источник

AT

Anton Taraev in GraphQL — русскоговорящее сообщество
Alex
да схема то пускай будет известна, просто что бы без токена туда нельзя было “попасть”
Мы так делали

directive @hasRole(role: Role!) on FIELD_DEFINITION

enum Role {
 ADMIN
 USER
}

type Query {
 tasks: [Task!]! @hasRole(ADMIN)
 task(id: ID!): Task!
 widgets: [Widget!]!
}
источник

U

Uxname in GraphQL — русскоговорящее сообщество
Alex
да схема то пускай будет известна, просто что бы без токена туда нельзя было “попасть”
попасть - это уже graphql запрос на интрспекцию схемы
источник

A

Alex in GraphQL — русскоговорящее сообщество
Uxname
попасть - это уже graphql запрос на интрспекцию схемы
я имел в виду, пусть запросы шлют, но им выдает Unathorized
источник

A

Alex in GraphQL — русскоговорящее сообщество
Anton Taraev
Мы так делали

directive @hasRole(role: Role!) on FIELD_DEFINITION

enum Role {
 ADMIN
 USER
}

type Query {
 tasks: [Task!]! @hasRole(ADMIN)
 task(id: ID!): Task!
 widgets: [Widget!]!
}
понял, почитаю о директивах
источник