All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added event
IAuthenticationService.PlayerInfoChangedfor when the instance ofPlayerInfois set. - Added event
PlayerInfo.Changedfor when the values withinPlayerInfoare updated. - Added event
IAuthenticationService.PlayerNameChangedfor when the player name changes. - Added event
IAuthenticationService.PlayerIdChangedfor when the player id changes. - Added more details to server exception messages.
- Fixed an issue where the player name does not update correctly when calling
IAuthenticationService.SwitchProfile() - Fixed an unexpected error log in the Player Accounts sample
- Added
PlayerAuthenticationcomponent to manage authentication in the scene authoring.
- Updated the minimum supported Editor version to 2021.3.
- Fixed an issue where
IAuthenticationService.Instance.GetSignInCodeInfoAsync()andIAuthenticationService.Instance.ConfirmCodeAsync()was not working properly on iOS devices
- Fixed an issue where
IAuthenticationService.SwitchProfile()was not working properly
- Fixed missing script reference in Player Accounts sample
- Added the Apple Privacy Manifest file (PrivacyInfo.xcprivacy)
- Added support for running different profiles when using Multiplayer Player Mode.
- Fixed
AuthenticationStateis in invalid state when access token is changed after sign-out or sign-in - Fixed
NullReferenceExceptionin Player Accounts SDK if not properly set up and the application received a deep-link request.
- Added
LastNotificationDatefield to inform the client of the player's notifications last created date. - Added
GetNotificationsAsyncmethod to allow the client to request the player's notifications - Added
Notificationsfield to cache the notifications after GetNotificationsAsync is called - Added
BannedUsererror code to identify an exception when a user has been banned.
- Fixed authentication refresh and expiration scheduling relying on device time which could cause edge cases.
- Changed
Custom Token ExchangeID provider toCustom ID.
- Added
GetCustomIdmethod to PlayerInfo. - Added
SignInWithSteamAsyncmethod withappIdparameter for Multiple App Id Support - Added
LinkWithSteamAsyncmethod withappIdparameter for Multiple App Id Support - Added
Additional App IDsto Steam ID Provider for Multiple App Id support
- Fixed serialization of player accounts settings.
- The Unity Player Accounts functionality has been merged in this package
- Added a warning when Unity Player Accounts package is installed with this version. It can be uninstalled
- Added
ProcessAuthenticationTokensmethod to enable BYOI custom id sign-in
- Upgrading base unity version support to 2020.3
- Updated the core SDK dependency version
- Adding event in access token component for packages to be notified of changes to the
IAccessTokenvalue. - Added
GenerateSignInCodeAsyncmethod to generate a sign-in code that can be used to sign-in. - Added
SignInWithCodeAsyncmethod to sign in using the previously generated sign-in code. This method can optionally poll the server for sign-in confirmation. - Added
GetSignInCodeInfoAsyncmethod to fetch information about a given sign-in code. - Added
ConfirmCodeAsyncmethod for sending a request to confirm a provided sign-in code. - Added
SignInCodeReceivedwhich is triggered whenSignInWithCodeAsyncmethod successfully generates aSignInCode. - Added
SignInCodeExpiredwhich is invoked when the sign-in code expires. - Adding server authentication service which lets developers authorize operations when running on unity's game server hosting or with service accounts.
- Added
SignInWithSteamAsyncandLinkWithSteamAsyncmethods withidentityparameter for better security. - Added
SignInWithUsernamePasswordAsync,SignUpWithUsernamePasswordAsync,AddUsernamePasswordAsync,UpdatePasswordAsync
- Marked previous versions of
SignInWithSteamAsyncandLinkWithSteamAsyncmethods as obsolete.
- Added
SignInWithUnityAsyncpublic API. - Added
LinkWithUnityAsyncpublic API. - Added
UnlinkUnityAsyncpublic API. - Added Unity Player Accounts configuration in Editor settings.
- Adding Preserve attributes to api models to prevent issues with code stripping for Oculus
- Properly disposing web request when using player names
- Fixing exception reporting in some cases for the SignInFailed event
- Remove time validation on client side, to prevent token expiry errors caused by the wrong date/time settings on devices.
- Adding Preserve attributes to api models to prevent issues with code stripping for player names
- Added
GetPlayerNameAsyncto retrieve the current player name in the Authentication service - Added
UpdatePlayerNameAsyncto update the current player name in the Authentication service - Added
PlayerNameproperty and caching in the Authentication service
PlayerIdproperty now properly returns null instead of an empty string by default- Package's license to refresh legal links.
- Added
SignInWithAppleGameCenterAsync,LinkWithAppleGameCenterAsync,UnlinkAppleGameCenterAsync
- Updated the core SDK dependency version
- Updated the core SDK dependency version
- Added
GetGooglePlayGamesId()toPlayerInfo. - Added
SignInWithOculusAsync,LinkWithOculusAsync,UnlinkOculusAsync - Added Oculus ID provider to Project Settings UI to configure ID providers.
- Updated the core SDK dependency to the latest version.
- Added
SignInWithOpenIdConnectAsync,LinkWithOpenIdConnectAsync,UnlinkOpenIdConnectAsync
- Updated the core SDK dependency to the latest version.
- Updated the core SDK dependency to latest version.
- Added
SignInWithGooglePlayGames,LinkWithGooglePlayGames,UnlinkGooglePlayGames
- Updated the core SDK dependency to latest version.
Public GA release.
- Restructured package file hierarchy.
- Refactored PlayerInfo's CreatedAt to be a DateTime (UTC).
- Refactored PlayerInfo's identities to use new Identity type.
- ExternalId is no longer public and is replaced by Identity.
- Removed 'SignInWithExternalTokenAsync and LinkWithExternalTokenAsync apis.
- Changed the following models to internal: UnlinkRequest, SignInWithExternalTokenRequest, LinkWithExternalTokenRequest
- Added helper methods to retrieve external Ids
- Renamed public model
UserInfotoPlayerInfo - Renamed
GetUserInfotoGetPlayerInfo - Removed
DomainIdproperty from thePlayerInfomodel
- Added SignInOptions models for all sign in operations.
- Added LinkOptions model for all link operations.
- Removed SignInWithSessionTokenAsync. This is fully handled by SignInAnonymously.
- Split ExternalTokenRequest into SignInExtenalTokenRequest and LinkWithExternalTokenRequest.
- Removed namespaces Unity.Services.Authentication.Models and Unity.Services.Authentication.Utilities for simplified use.
- Added optional parameter on Signout to clear credentials.
- Added player id caching between sessions.
- Added optional force link parameter to linking apis (Apple, Facebook, Google, Steam).
- Reset the session token when getting an invalid session token error.
- Added enableRefresh parameter to SignInWithExternalTokenAsync.
Added profile support. Profiles allow managing multiple accounts at the same time by isolating the session token persistence.
- Added
Profileproperty toIAuthenticationServiceto access the current profile. - Added
SwitchProfiletoIAuthenticationServiceto change the current profile. - Added
ClientInvalidProfileerror code toAuthenticationErrorCodesused when entering an invalid profile name. - Added
SetProfileextension method toInitializationOptions.
- Added
DeleteAccountAsynctoIAuthenticationService. - Added
AccountLinkLimitExceededandClientUnlinkExternalIdNotFounderror codes toAuthenticationErrorCodes. - Error code
AccountLinkLimitExceededis used when the current player's account has reached the limit of links for the provider when using a link operation. - Error code
ClientUnlinkExternalIdNotFoundis sent when no matching external id is found in the player'sUserInfowhen using an unlink operation.
- Added
UserInfoproperty toIAuthenticationService. - Added
UnlinkAppleAsyncfunction toIAuthenticationService. - Added
UnlinkFacebookAsyncfunction toIAuthenticationService. - Added
UnlinkGoogleAsyncfunction toIAuthenticationService. - Added
UnlinkSteamAsyncfunction toIAuthenticationService.
- Added
IsAuthorizedproperty. - Added
SessionTokenExistsproperty. - Added
GetUserInfoAsynctoIAuthenticationService
- Added
IsExpiredproperty. - Added
Expiredevent. - Added
ClearSessionTokenfunction
- Updated UI Samples
- Updated the core SDK dependency to latest version.
- Added Samples to Package Manager
- Added
SignInWithExternalTokenAsyncandLinkWithExternalTokenAsynctoIAuthenticationService.
- Made
ExternalTokenRequestclass public.
- Integrate with Package Manager under the Services tab filter and comply with the standard for the UI detail screen.
- Updated the
AuthenticationExceptionto base onRequestFailedException. - Updated the core SDK dependency to latest version.
- Package structure for promotion
- Updated the core SDK dependency to latest version.
- Updated the core SDK dependency to latest version.
- Updated the core SDK dependency to latest version.
- Updated the core SDK dependency to latest version.
- Updated the core SDK dependency to latest version.
- Add missing xmldoc for the public functions.
- Add support for Unity Environments
- Remove
SetOAuthClient()as the authentication flow is simplified. - Updated the initialization code to initialize with
UnityServices.Initialize()
- Added Project Settings UI to configure ID providers.
- Added
SignInWithSteam,LinkWithSteamfunctions. - Changed the public interface of the Authentication service from a static instance and static methods to a singleton instance hidden behind an interface.
- Change the public signature of
Authenticationto return a Task, as opposed to a IAsyncOperation - Change the public API names of
AuthenticationtoAsync
- Change the
SignInFailedevent to takeAuthenticationExceptioninstead of a string as parameter. It can provide more information for debugging purposes. - Fixed the
com.unity.services.corepackage dependency version.
- Added
SignInWithApple,LinkWithApple,SignInWithGoogle,LinkWithGoogle,SignInWithFacebook,LinkWithFacebookfunctions. - Added
SignInWithSessionToken - Added error codes used by the social scenarios to
AuthenticationError.
- Rename the package from
com.unity.services.identitytocom.unity.services.authentication. Renamed the internal types/methods, too.
- Core package integration
- Fixed dependency on Utilities package
- Removed requirement for OAuth client ID to be specified (automatically uses project default OAuth client)