我有一个带有苦艾酒的 Phoenix 应用程序,用于 Graphql API。
Guardian 用于验证在标头中提供 Bearer 令牌的请求。在提供无效令牌之前,这一切都很好。我在我的 Guardian 管道中指定了一个错误处理程序,它目前只响应 401 http 响应:
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 响应?