ExBankID.Auth.Payload (ex_bank_id v0.2.2) View Source

Provides the struct used when initiating a authentication

Link to this section Summary

Functions

Returns a Payload struct containing the given ip address and personal number.

Link to this section Types

Specs

reason() :: binary()

Link to this section Functions

Link to this function

new(ip_address, opts \\ [])

View Source

Specs

new(binary(), Keyword.t()) ::
  {:error, reason()}
  | %ExBankID.Auth.Payload{
      endUserIp: binary(),
      personalNumber: binary(),
      requirement: map() | nil
    }

Returns a Payload struct containing the given ip address and personal number.

Examples

iex> ExBankID.Auth.Payload.new("1.1.1.1")
%ExBankID.Auth.Payload{endUserIp: "1.1.1.1"}

iex> ExBankID.Auth.Payload.new("qwerty")
{:error, "Invalid ip address: qwerty"}

iex> ExBankID.Auth.Payload.new("1.1.1.1", [personal_number: "190000000000"])
%ExBankID.Auth.Payload{endUserIp: "1.1.1.1", personalNumber: "190000000000"}

iex> ExBankID.Auth.Payload.new("1.1.1.1", [personal_number: "Not a personal number"])
{:error, "Invalid personal number: Not a personal number"}

iex> ExBankID.Auth.Payload.new("1.1.1.1", [requirement: %{allowFingerprint: :false}])
%ExBankID.Auth.Payload{endUserIp: "1.1.1.1", requirement: %{allowFingerprint: :false}}

iex> ExBankID.Auth.Payload.new("1.1.1.1", [requirement: %{cardReader: "class2", tokenStartRequired: :false}])
%ExBankID.Auth.Payload{endUserIp: "1.1.1.1", requirement: %{cardReader: "class2", tokenStartRequired: :false}}

iex> ExBankID.Auth.Payload.new("1.1.1.1", [requirement: %{issuerCn: ["Nordea CA for Smartcard users 12", "Nordea CA for Softcert users 13"] }])
%ExBankID.Auth.Payload{endUserIp: "1.1.1.1", requirement: %{issuerCn: ["Nordea CA for Smartcard users 12", "Nordea CA for Softcert users 13"]}}

iex> ExBankID.Auth.Payload.new("1.1.1.1", [requirement: %{certificatePolicies: ["1.2.752.78.1.2", "1.2.752.78.*", "1.2.752.78.1.*"] }])
%ExBankID.Auth.Payload{endUserIp: "1.1.1.1", requirement: %{certificatePolicies: ["1.2.752.78.1.2", "1.2.752.78.*", "1.2.752.78.1.*"] }}

iex> ExBankID.Auth.Payload.new("1.1.1.1", [requirement: %{notRealRequirement: ["shouldFail"]}])
{:error, "Invalid requirement"}