Speakeasy.Authn (Speakeasy v0.3.2)
Authentication middleware for Absinthe.
See the README for a complete example in a Absinthe Schema.
Link to this section Summary
Functions
Considers the context authenticated if a non-null value is exists under :user_key
in the Absinthe.Resolution
:context
Link to this section Functions
Link to this function
call(res, opts \\ [])
Considers the context authenticated if a non-null value is exists under :user_key
in the Absinthe.Resolution
:context
Examples
:user_key
and :authn_error_message
can be set globally and be overwritten per middleware call:
config :speakeasy,
user_key: :current_user, # the key the current user will be under in the GraphQL context
authn_error_message: :unauthenticated # default authentication
Authenticating using default options:
object :post_mutations do
@desc "Create post"
field :create_post, type: :post do
arg(:name, non_null(:string))
middleware(Speakeasy.Authn)
end
end
Authenticating using a custom :user_key
object :post_mutations do
@desc "Create post"
field :create_post, type: :post do
arg(:name, non_null(:string))
middleware(Speakeasy.Authn, user_key: :user)
end
end
Authenticating using a string error :message
object :post_mutations do
@desc "Create post"
field :create_post, type: :post do
arg(:name, non_null(:string))
middleware(Speakeasy.Authn, message: "No way")
end
end
Authenticating using a callback error :message
. This will receive the Absinthe.Resolution
:context
object :post_mutations do
@desc "Create post"
field :create_post, type: :post do
arg(:name, non_null(:string))
middleware(Speakeasy.Authn, message: fn(_ctx) -> "Error message" end)
end
end