如何在中继中进行身份验证

Posted

技术标签:

【中文标题】如何在中继中进行身份验证【英文标题】:How to authenticate in relay 【发布时间】:2016-11-11 13:48:04 【问题描述】:

验证用户的正确点是什么?

以继电器入门套件为例。

这似乎是要查询的点(我已经添加了 args 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';

这不起作用。

【问题讨论】:

【参考方案1】:

首先,您需要将身份验证中间件放入您的服务器(例如http://passportjs.org/)。然后您必须将身份验证信息传递给 graphql 中间件(在此处阅读如何操作https://github.com/graphql/express-graphql#advanced-options),最后您可以使用resolve(parentValue, args, -->session) 函数的第三个参数访问该信息。下面是实际的身份验证端点的样子 https://github.com/igorsvee/react-relay-example/blob/master/server/routes.js#L29-L51

【讨论】:

以上是关于如何在中继中进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 Office365 作为中继服务器的 Postfix 上的 SASL 身份验证失败

WebAPI + SimpleMembership + WebSecurity - 永远无法进行身份验证?

如何“请进行人机身份验证”.在谷歌学术中进行搜索,显示“请进行人机身份验证”啥意思?如何验证呢。

如何使用 Web API 来对 MVC 应用程序进行身份验证

使用 Graphcool 发出经过身份验证的查询

如何使用 Web API 来对 MVC 应用程序进行身份验证