2016-07-08 4 views
0

Каков правильный момент для аутентификации пользователя?Как аутентифицироваться в реле

, идущий от стартового комплекта реле в качестве примера.

это, казалось бы, как бы точку для запроса (я добавлял ARGS идентификатор)

var queryType = new GraphQLObjectType({ 
    name: 'Query', 
    fields:() => ({ 
    node: nodeField, 
    // Add your own root fields here 
    viewer: { 
     args: { 
     id: { 
      type: GraphQLString 
     }, 
     }, 
     type: userType, 
     resolve: (_, args) => getViewer(args.id), 
    }, 
    }), 
}); 

затем в базе данных сделать что-то вроде

getViewer: (id) => id === viewer.id ? viewer : null, 

теперь этот его точке, где она разваливается , где можно было бы запросить идентификацию? я бы взял маршрут

export default class extends Relay.Route { 
    static queries = { 
    viewer:() => Relay.QL` 
     query { 
     viewer(id:"1") 
     } 
    `, 
    }; 
    static routeName = 'AppHomeRoute'; 
} 

это не работает.

ответ

0

Прежде всего вам нужно отказаться от промежуточного программного обеспечения auth на вашем сервере (например, http://passportjs.org/). Затем вы должны передать информацию об аутентификации в промежуточное ПО graphql (прочитайте о том, как это сделать здесь https://github.com/graphql/express-graphql#advanced-options), и вы можете, наконец, получить доступ к этой информации используя третий аргумент функции resolve(parentValue, args, -->session). Вот как может выглядеть фактическая конечная точка auth: https://github.com/igorsvee/react-relay-example/blob/master/server/routes.js#L29-L51