View Source AppStore.Token.Server (App Store v0.2.0)

A server for AppStore.Token, generate and cache token.

Usage

iex> AppStore.Token.Server.start_link(%{
  issuer_id: "57246542-96fe-1a63-e053-0824d011072a",
  bundle_id: "com.example.testbundleid2021",
  key: %{
    id: "2X9R4HXF34",
    pem: "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----"
  }
})
{:ok, server}

iex> AppStore.Token.Server.generate(server)
{:ok, "token", %{
  ...claims
}}

Summary

Functions

Returns a specification to start this module under a supervisor.

Generate a signed token and cache it for 59 minutes per the suggestion on Apple's documentation: Generating Tokens for API Requests

Start the server.

Functions

Returns a specification to start this module under a supervisor.

See Supervisor.

Generate a signed token and cache it for 59 minutes per the suggestion on Apple's documentation: Generating Tokens for API Requests

Example

iex> AppStore.Token.Server.generate(server)
{:ok,
  "eyJhbGciOiJFUzI1NiIsImtpZCI6IjJYOVI0SFhGMzQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhcHBzdG9yZWNvbm5lY3QtdjEiLCJiaWQiOiJjb20uZXhhbXBsZS50ZXN0YnVuZGxlaWQyMDIxIiwiZXhwIjoxNjI5NzI1MDYwLCJpYXQiOjE2Mjk3MjE1MjAsImlzcyI6IjU3MjQ2NTQyLTk2ZmUtMWE2My1lMDUzLTA4MjRkMDExMDcyYSIsIm5vbmNlIjoiMnFldXU1bGg4cTlqZzhkaXBnMDAwMDAyIn0.p4-aBtXXQh3QUz1Ok2dpyuWkUiuk2BI9UCIB6AFs8M0eDyrVnEAPkIydVd_CKMN-VeMrsbL06mG6uW_kCx0TaQ",
  %{
    "aud" => "appstoreconnect-v1",
    "bid" => "com.example.testbundleid2021",
    "exp" => 1629725060,
    "iat" => 1629721520,
    "iss" => "57246542-96fe-1a63-e053-0824d011072a",
    "nonce" => "2qeuu5lh8q9jg8dipg000002"
  }
}
@spec start_link(AppStore.Token.Server.State.config()) ::
  :ignore | {:error, any()} | {:ok, pid()}

Start the server.

Example

iex> AppStore.Token.Server.start_link(%{
  issuer_id: "57246542-96fe-1a63-e053-0824d011072a",
  bundle_id: "com.example.testbundleid2021",
  key: %{
    id: "2X9R4HXF34",
    pem: "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----"
  }
})
{:ok, #PID<0.328.0>}