# Class AppleSignInResult

java.lang.Object
com.codename1.social.AppleSignInResult

public final class AppleSignInResult extends Object

Successful outcome of an `AppleSignIn.signIn(String, AppleSignInCallback)` call.

Apple only returns the user's name and email on the first authorization for a given app. On subsequent sign-ins those fields are absent in the native callback; `AppleSignIn` backfills them from `Preferences` when present, so the application sees a consistent result.

Since:
  8.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getAuthorizationCode()`
  Authorization code suitable for the server-side `client_secret` token exchange (Apple does not expose refresh tokens to public clients, so this is the only way to obtain one).
  `String`
  `getEmail()`
  Email the user shared with the app.
  `String`
  `getFullName()`
  Full display name (given + family) on the first authorization; previously-stored value otherwise; `null` if the user declined to share it.
  `String`
  `getIdentityToken()`
  JWT identity token signed by Apple.
  `String`
  `getUserId()`
  Stable opaque identifier ("user identifier" in Apple's docs).

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### getIdentityToken

    public String getIdentityToken()
    JWT identity token signed by Apple. Send to your backend, where you must validate the signature against Apple's JWKS and check the `aud` / `iss` / `exp` claims before trusting it.

  - ### getAuthorizationCode

    public String getAuthorizationCode()
    Authorization code suitable for the server-side `client_secret` token exchange (Apple does not expose refresh tokens to public clients, so this is the only way to obtain one).

  - ### getUserId

    public String getUserId()
    Stable opaque identifier ("user identifier" in Apple's docs). Treat this as the user's primary key for your app.

  - ### getEmail

    public String getEmail()
    Email the user shared with the app. May be the real address, may be a relay address (`@privaterelay.appleid.com`), or may be `null` if the user has previously signed in and the email was already stored.

  - ### getFullName

    public String getFullName()
    Full display name (given + family) on the first authorization; previously-stored value otherwise; `null` if the user declined to share it.