首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Absinthe时从Guardian错误处理程序发送graphql响应

使用Absinthe时从Guardian错误处理程序发送graphql响应
EN

Stack Overflow用户
提问于 2018-11-17 21:28:34
回答 1查看 185关注 0票数 0

我有一个用于Graphql API的Absinthe的Phoenix应用程序。

Guardian用于对在报头中提供承载令牌的请求进行身份验证。在提供无效的令牌之前,这一切都很好用。我已经在我的守护管道中指定了一个错误处理程序,它目前只响应一个401 http响应:

代码语言:javascript
复制
def auth_error(conn, {type, _reason}, _opts) do
    body = to_string(type)

    conn
    |> put_resp_content_type("text/plain")
    |> send_resp(401, body)
end

这对任何graphql客户端都不友好,我的解析器并不真正关心令牌是否无效,因为它们有自己的检查来查看上下文中是否提供了用户。

如果令牌无效,有没有办法从错误处理程序继续管道,这样我就可以给出一个正确的graphql响应?

EN

回答 1

Stack Overflow用户

发布于 2018-11-20 08:22:24

我的建议是创建一个插件,它将验证持有者令牌并在上下文中设置当前用户。然后,您可以编写一个Absinthe.Middleware来验证当前用户是否存在,并在不存在时设置一个错误。

此外,还可以在blunder-absinthe上查看更好的错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53351695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档