繁体   English   中英

使用受保护的GraphQL端点进行用户注册

[英]User Registration With Protected GraphQL Endpoint

我正在使用GraphQL和Node(express)创建一个应用程序。 我看过的许多教程都建议使用突变来创建用户:

mutation {
  createUser(username: "johndoe", password: "Tr0ub4dor&3")
}

现在,我希望使用JSON Web令牌身份验证来保护GraphQL端点/graphql 因此,我公开了一个不受保护的非GraphQL端点/token ,它为数据库中已经存在的用户生成一个令牌。 然后可以使用此令牌访问/graphql端点。

但是,新用户无法获取JSON Web令牌来访问/graphql端点,因为该端点尚未在数据库中。 因此,看来我无法使用突变来创建新用户。

我确实考虑过纯粹使用viewer字段和某种genToken突变在GraphQL中处理身份验证; 但是, 这似乎不是一个好习惯

因此,我唯一的选择是公开第二个不受保护的非GraphQL终结点,例如/createuser来处理用户创建吗? 最佳做法是什么?

您想保护哪些数据免受未注册用户的侵害? 与REST不同,Graphql仅对所有内容使用相同的端点。 比方说,例如您有待办事项应用程序,您有查询以显示待办事项,该注册用户已发布。 您可以保护get todo查询并使用令牌添加todo变异。(请检查上下文)此jwt上下文需要为您要保护的查询或变异添加内容。

您可以查看此帖子以获取更多详细信息https://dev-blog.apollodata.com/authorization-in-graphql-452b1c402a9

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM