0

ユーザーを認証する正しいポイントは何ですか?

例としてリレースターターキットを使用します。

これはクエリのポイントのように思われます (引数 id を追加しました)

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,

今、それがバラバラになっているこのポイントです.IDの作成を要求する場所はどこですか? 私はルートを想定します

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

これは機能していません。

4

1 に答える 1

0

まず、認証ミドルウェアをサーバーにドロップする必要があります (例: http://passportjs.org/ )。次に、認証情報を graphql ミドルウェアに渡す必要があります (方法については、https://github. com/graphql/express-graphql#advanced-options ) そして、関数の 3 番目の引数を使用して最終的にその情報にアクセスできますresolve(parentValue, args, -->session)。実際の認証エンドポイントは次のようになります https://github.com/igorsvee/react-relay-example/blob/master/server/routes.js#L29-L51

于 2016-07-11T15:07:41.453 に答える