如何在中继中进行身份验证
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 - 永远无法进行身份验证?
如何“请进行人机身份验证”.在谷歌学术中进行搜索,显示“请进行人机身份验证”啥意思?如何验证呢。