Если вы используете отдельную конечную точку /verify
, вы, скорее всего, захотите перенаправить пользователя обратно на ваш сайт после обработки запроса. Один из подходов состоит в том, чтобы эффективно перевернуть этот поток, связавшись с вашим сайтом, а затем заставить вашу страницу выполнить необходимый запрос GraphQL.
Кроме того, вы можете вызвать свой распознаватель verify
по ссылке в электронном письме. express-graphql
будет обрабатывать запросы POST
и GET
. Однако при таком подходе следует помнить несколько вещей:
- Он будет работать только с запросами, поэтому ваше поле «проверки» должно иметь тип запроса
- Запрос будет работать в контексте браузера, но потерпит неудачу, если вы вызовете его изнутри, например, GraphiQL
Вот базовый пример:
const typeDefs = `
type Query {
verify: Boolean # Can be any nullable scalar
}
`
const resolvers = {
Query: {
verify: (root, args, ctx) => {
// Your verification logic
ctx.res.redirect('https://www.google.com')
}
}
}
const schema = makeExecutableSchema({ typeDefs, resolvers })
app.use('/graphql', graphqlHTTP((req, res) => ({
schema: MyGraphQLSchema,
graphiql: false,
// Inject the response object into the context
context: { req, res },
})))
app.listen(4000)
Затем вы можете просто перейти по этому URL в вашем браузере:
http://localhost:4000/graphql?query={verify}