【发布时间】:2021-02-05 16:55:35
【问题描述】:
我正在尝试将我的 Google OAuth 响应发送到 gql 突变以对用户进行身份验证/登录。从 google 获取响应时,我正在执行以下操作:
const authGQL = (user) => graphql(gql`
mutation {
LoginOrSignup(name: ${user.profileObj.name}, email: ${user.profileObj.email}, googleId:
${user.googleId}, imageUrl: ${user.profileObj.imageUrl}) {
name
email
googleId
imageUrl
}
}
`);
这是在我的突变文件中:
const mutation = new GraphQLObjectType({
name: 'Mutation',
fields: {
LoginOrSignup: {
type: UserType,
args: {
name: { type: new GraphQLNonNull(GraphQLString) },
email: { type: new GraphQLNonNull(GraphQLString) },
googleId: { type: new GraphQLNonNull(GraphQLString) },
imageUrl: { type: new GraphQLNonNull(GraphQLString) }
},
resolve(parentValue, { name, email, googleId, imageUrl}, request) {
return AuthService.verifyUser({ name, email, googleId, imageUrl, req: request })
}
}
}
});
它没有达到解析功能,我不知道为什么!提前致谢。
【问题讨论】:
-
错误信息是什么?
-
Uncaught GraphQLError: Syntax Error: Expected ":", found Name "email".... 突变在 graphiql 中工作得很好 - 我可以注册/登录用户没问题.
-
哦,我刚刚注意到你正在使用
gql标签功能。您不能使用 tag 函数通过字符串插值动态传递变量。您需要使用 graphql 变量 blog.logrocket.com/graphql-variables-in-simple-terms 并通过variables键传递它们 -
谢谢!我会考虑将其作为解决方案。
标签: javascript reactjs graphql gql mutation