GameServerWeb.Auth.Guardian (game_server_web v1.0.941)

Copy Markdown

Guardian implementation for JWT-based authentication.

This module handles encoding and decoding JWT tokens for API authentication. It works alongside the existing session-based authentication for browser flows.

Summary

Functions

Callback implementation for Guardian.build_claims/3.

Fetches the configuration for this module.

Returns a resolved value of the configuration found at a key.

Decodes and verifies a token using the configuration on the implementation module.

The default type of token for this module.

Exchanges a token of one type for another.

Provides the content of the token but without verification of either the claims or the signature.

Retrieves the user from the database using the subject (user ID) from the token.

Fetch the resource and claims directly from a token.

Revoke a token.

If Guardian.Plug.SlidingCookie is used, this callback will be invoked to return the new claims, or an error (which will mean the cookie will not be refreshed).

Encodes the user ID into the JWT token as the subject.

Functions

after_encode_and_sign(r, claims, token, _)

Callback implementation for Guardian.after_encode_and_sign/4.

after_sign_in(conn, r, t, c, o)

Callback implementation for Guardian.after_sign_in/5.

before_sign_out(conn, location, opts)

Callback implementation for Guardian.before_sign_out/3.

build_claims(c, _, _)

Callback implementation for Guardian.build_claims/3.

config()

@spec config() :: Keyword.t()

Fetches the configuration for this module.

config(key, default \\ nil)

@spec config(atom() | String.t(), any()) :: any()

Returns a resolved value of the configuration found at a key.

See Guardian.Config.resolve_value/1.

decode_and_verify(token, claims_to_check \\ %{}, opts \\ [])

@spec decode_and_verify(
  Guardian.Token.token(),
  Guardian.Token.claims(),
  Guardian.options()
) ::
  {:ok, Guardian.Token.claims()} | {:error, any()}

Decodes and verifies a token using the configuration on the implementation module.

See Guardian.decode_and_verify/4.

default_token_type()

@spec default_token_type() :: String.t()

The default type of token for this module.

encode_and_sign(resource, claims \\ %{}, opts \\ [])

@spec encode_and_sign(any(), Guardian.Token.claims(), Guardian.options()) ::
  {:ok, Guardian.Token.token(), Guardian.Token.claims()} | {:error, any()}

Encodes the claims.

See Guardian.encode_and_sign/4 for more information.

exchange(token, from_type, to_type, opts \\ [])

@spec exchange(
  token :: Guardian.Token.token(),
  from_type :: String.t() | [String.t(), ...],
  to_type :: String.t(),
  options :: Guardian.options()
) ::
  {:ok, {Guardian.Token.token(), Guardian.Token.claims()},
   {Guardian.Token.token(), Guardian.Token.claims()}}
  | {:error, any()}

Exchanges a token of one type for another.

See Guardian.exchange for more information.

on_exchange(old_stuff, new_stuff, options)

Callback implementation for Guardian.on_exchange/3.

on_refresh(old_stuff, new_stuff, options)

Callback implementation for Guardian.on_refresh/3.

on_revoke(claims, token, options)

Callback implementation for Guardian.on_revoke/3.

on_verify(claims, token, options)

Callback implementation for Guardian.on_verify/3.

peek(token)

@spec peek(String.t()) :: map()

Provides the content of the token but without verification of either the claims or the signature.

Claims will be present at the :claims key.

See Guardian.peek/2 for more information.

refresh(old_token, opts \\ [])

Refresh a token.

See Guardian.refresh for more information.

resource_from_claims(arg1)

Retrieves the user from the database using the subject (user ID) from the token.

resource_from_token(token, claims_to_check \\ %{}, opts \\ [])

@spec resource_from_token(
  token :: Guardian.Token.token(),
  claims_to_check :: Guardian.Token.claims() | nil,
  opts :: Guardian.options()
) :: {:ok, Guardian.Token.resource(), Guardian.Token.claims()} | {:error, any()}

Fetch the resource and claims directly from a token.

See Guardian.resource_from_token for more information.

revoke(token, opts \\ [])

@spec revoke(Guardian.Token.token(), Guardian.options()) ::
  {:ok, Guardian.Token.claims()} | {:error, any()}

Revoke a token.

See Guardian.revoke for more information.

sliding_cookie(current_claims, current_resource, opts \\ [])

@spec sliding_cookie(
  current_claims :: Guardian.Token.claims(),
  current_resource :: Guardian.Token.resource(),
  options :: Guardian.options()
) :: {:ok, new_claims :: Guardian.Token.claims()} | {:error, any()}

If Guardian.Plug.SlidingCookie is used, this callback will be invoked to return the new claims, or an error (which will mean the cookie will not be refreshed).

subject_for_token(arg1, arg2)

Encodes the user ID into the JWT token as the subject.

verify_claims(claims, options)

Callback implementation for Guardian.verify_claims/2.