View Source AppStore.JWSValidation (App Store v0.3.1)

A module to validate the JWS from Apple.

Summary

Functions

Link to this function

get_binary_cert_chain(signed_payload)

View Source
Link to this function

validate(signed_payload)

View Source
@spec validate(String.t() | list()) ::
  {:error, atom()} | {:ok, %JOSE.JWT{fields: term()}}

Validate the signed payload from Apple.

Official documentation: JWS Transaction

Examples

iex> AppStore.JWSValidation.validate("
  eyJhbGciOiJFUzI1NiIsImtpZCI6IjJYOVI0SFhGMzQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhcHBzdG9yZWNvbm5lY3QtdjEiLCJiaWQiOiJjb20uZXhhbXBsZS50ZXN0YnVuZGxlaWQyMDIxIiwiZXhwIjoxNjI5NTA2MjQwLCJpYXQiOjE2Mjk1MDI3MDAsImlzcyI6IjU3MjQ2NTQyLTk2ZmUtMWE2My1lMDUzLTA4MjRkMDExMDcyYSIsIm5vbmNlIjoiMnFlaWc0a2wxOTQ0aHFhbmVzMDAwMGMxIn0.gYa_A7J6a6UAyBTAohf4gj28jT0k-OX1CW8cwsVGb4EewEm3owdsv6iWvzt7SutCndCBg5hPfNFWuZ0Au20HxA"
)
{:ok,
 %JOSE.JWT{
   fields: %{
     "bundleId" => "com.example",
     "environment" => "Sandbox",
     "signedDate" => 1_672_956_154_000
   }
 }}

iex> AppStore.JWSValidation.validate(["signed_payload1", "signed_payload2"]))
[
  {:ok, %JOSE.JWT{fields: %{"bundleId" => "com.example", "environment" => "Sandbox", "signedDate" => 1_672_956_154_000}}},
  {:ok, %JOSE.JWT{fields: %{"bundleId" => "com.example2", "environment" => "Sandbox", "signedDate" => 1_672_956_154_000}}}
]
Link to this function

validate_certificate_chain(cert_chain, ext_apple_root_cert \\ nil)

View Source