微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apollo Server:在上下文中抛出错误总是在客户端返回 http 400 错误

如何解决Apollo Server:在上下文中抛出错误总是在客户端返回 http 400 错误

所以,我在我的 iOS 应用中运行了一个 apollo 服务器和一个 apollo 客户端。

我正在尝试实施身份验证过程。按照 apollo's documentation 关于授权和身份验证,我最终尝试了他们提供的代码


context: ({ req }) => {
    throw new AuthenticationError('you must be logged in');
},

但是,在测试代码时,我发现无论是 javascript 错误还是 apollo 错误,都会抛出一个错误,它总是发回一个 http 400 错误

Error: Response not successful: Received status code 400
    at new ApolloError (errors.cjs.js:31)
    at core.cjs.js:1493
    at both (utilities.cjs.js:963)
    at utilities.cjs.js:956
    at tryCallTwo (core.js:45)
    at doResolve (core.js:200)
    at new Promise (core.js:66)
    at Object.then (utilities.cjs.js:956)
    at Object.error (utilities.cjs.js:964)
    at notifySubscription (Observable.js:140)

身份验证错误不会发回。即使我抛出自定义错误,使用自定义状态代码和所有内容也总是返回相同的错误

我做错了吗?或者这是一个问题?

解决方法

如果您不指望收到任何下游任务的 401 错误代码,我认为这不是您需要担心的问题。但是,如果您确实需要收到预期的 401,则可以使用 Apollo Link 进行错误处理。在此处阅读:https://www.apollographql.com/docs/react/data/error-handling/#advanced-error-handling-with-apollo-link

如果您仍然无法解决问题,浏览此问题也可能会有所帮助:https://github.com/apollographql/apollo-server/issues/1709

希望这会有所帮助,快乐编码 :)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。