执行经过身份验证的 keystone.js / GraphQL API 查询
Posted
技术标签:
【中文标题】执行经过身份验证的 keystone.js / GraphQL API 查询【英文标题】:Perform an authenticated keystone.js / GraphQL API query 【发布时间】:2020-11-14 13:16:30 【问题描述】:我是 Keystone.js 和 GraphQL 的新手。到目前为止,我已经能够通过 POST 请求成功执行以下 API 查询(取自 page):
const SIGNIN = `mutation signin($identity: String, $secret: String)
authenticate: authenticateUserWithPassword(email: $identity, password: $secret)
item
id
name
`;
// Returns id and name of authenticated user
和
const GET_ALL_POSTS = `query GetPosts
allPosts
name
id
`;
// Returns id and name of all posts (if no access controls)
如果我为列表 Post
设置 access controls,我会按预期从第二个查询中收到访问错误,但我无法工作如何对 allPosts
执行经过身份验证的查询,例如我要:
allPosts
的查询并返回结果
我做错了什么?
【问题讨论】:
【参考方案1】:答案是首先提交以下查询,以验证您的用户并生成访问令牌:
query: `mutation ($identity: String, $secret: String)
authenticate: authenticateUserWithPassword(email: $identity, password: $secret)
token
`
然后通过将提供的令牌添加到您的请求标头来验证后续查询:
'Authorization: Bearer <token>'.
更多信息here。
更一般地说,the GraphQL playground 非常值得任何进入 keystonejs 和 GraphQL 新手的人看看。
【讨论】:
以上是关于执行经过身份验证的 keystone.js / GraphQL API 查询的主要内容,如果未能解决你的问题,请参考以下文章
使用 axios 执行经过身份验证的请求时,Jest 返回“网络错误”
Spring Security:仅为经过身份验证的用户执行 jQuery 代码
如何检查用户是不是经过身份验证以访问特定路径(MEAN STACK)
如何在 Blazor WASM 中对当前经过身份验证的用户帐户信息执行 CRUD 操作?