2016-07-08 12 views
0

Was ist der richtige Punkt, um einen Benutzer zu authentifizieren?Wie authentifizieren Sie sich in Relais

Gehen durch das Relais Starterkit als ein Beispiel.

würde dies den Punkt scheinen, wie sein abfragen

(i die args-ID hinzugefügt haben)
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), 
    }, 
    }), 
}); 

dann in der Datenbank etwas tun, wie

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

jetzt seine diesem Punkt, wo es auseinander fallen Wo wäre der Ort, um die ID anzufordern? Ich würde die Route annehmen

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

dies funktioniert nicht.

Antwort

0

Zuerst müssen Sie eine Auth Middleware in Ihren Server (http://passportjs.org/ zum Beispiel). Dann müssen Sie die Auth Informationen an die Graphql Middleware übergeben (lesen Sie hier, wie es geht hier https://github.com/graphql/express-graphql#advanced-options) und Sie können endlich auf diese Informationen zugreifen Verwenden des dritten Arguments für die resolve(parentValue, args, -->session)-Funktion. So könnte der tatsächliche Authentifizierungsendpunkt aussehen: https://github.com/igorsvee/react-relay-example/blob/master/server/routes.js#L29-L51