[英]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.