Как добавить авторизацию в слой бизнес логики c в Graphql? - PullRequest
0 голосов
/ 17 апреля 2020

Я использую промежуточное ПО, которое проверяет, вошел ли пользователь в систему, и, если это так, сохраняет информацию о своей учетной записи в контексте graphql. У всех пользователей есть четыре возможных роли: пользователь, хост, администратор и супер. В настоящее время мой пользовательский объект GraphQL выглядит так:

const User = new GraphQLObjectType({
    name: 'User',
    fields: () => ({
        id: {type: GraphQLNonNull(GraphQLID)},
        name: {type: GraphQLString},
        email: {type: GraphQLString},
        balance: {type: GraphQLFloat},
        username: {type: GraphQLString},
        birthday: {type: GraphQLString},
        roles: {type: GraphQLList(GraphQLString)},
        disputes: {type: GraphQLList(DisputeType)},
        transactions: {type: GraphQLList(GraphQLString)},
    })
})

И вот данные, к которым я хотел бы иметь доступ для каждой роли:

пользователь: имя пользователя, роли

хост: имя пользователя, роли

администратор: электронная почта, имя пользователя, роли, споры

супер: все

Где хранить эти логи c? В моем файле типа объекта или где-то еще? Не могли бы вы привести пример кода? Я использую mon goose для моего слоя данных. Заранее благодарим за понимание!

...