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
PlayerAuthentication
component 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
AuthenticationState
is in invalid state when access token is changed after sign-out or sign-in - Fixed
NullReferenceException
in Player Accounts SDK if not properly set up and the application received a deep-link request.
- Added
LastNotificationDate
field to inform the client of the player's notifications last created date. - Added
GetNotificationsAsync
method to allow the client to request the player's notifications - Added
Notifications
field to cache the notifications after GetNotificationsAsync is called - Added
BannedUser
error 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 Exchange
ID provider toCustom ID
.
- Added
GetCustomId
method to PlayerInfo. - Added
SignInWithSteamAsync
method withappId
parameter for Multiple App Id Support - Added
LinkWithSteamAsync
method withappId
parameter for Multiple App Id Support - Added
Additional App IDs
to 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
ProcessAuthenticationTokens
method 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
IAccessToken
value. - Added
GenerateSignInCodeAsync
method to generate a sign-in code that can be used to sign-in. - Added
SignInWithCodeAsync
method to sign in using the previously generated sign-in code. This method can optionally poll the server for sign-in confirmation. - Added
GetSignInCodeInfoAsync
method to fetch information about a given sign-in code. - Added
ConfirmCodeAsync
method for sending a request to confirm a provided sign-in code. - Added
SignInCodeReceived
which is triggered whenSignInWithCodeAsync
method successfully generates aSignInCode
. - Added
SignInCodeExpired
which 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
SignInWithSteamAsync
andLinkWithSteamAsync
methods withidentity
parameter for better security. - Added
SignInWithUsernamePasswordAsync
,SignUpWithUsernamePasswordAsync
,AddUsernamePasswordAsync
,UpdatePasswordAsync
- Marked previous versions of
SignInWithSteamAsync
andLinkWithSteamAsync
methods as obsolete.
- Added
SignInWithUnityAsync
public API. - Added
LinkWithUnityAsync
public API. - Added
UnlinkUnityAsync
public 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
GetPlayerNameAsync
to retrieve the current player name in the Authentication service - Added
UpdatePlayerNameAsync
to update the current player name in the Authentication service - Added
PlayerName
property and caching in the Authentication service
PlayerId
property 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
UserInfo
toPlayerInfo
- Renamed
GetUserInfo
toGetPlayerInfo
- Removed
DomainId
property from thePlayerInfo
model
- 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
Profile
property toIAuthenticationService
to access the current profile. - Added
SwitchProfile
toIAuthenticationService
to change the current profile. - Added
ClientInvalidProfile
error code toAuthenticationErrorCodes
used when entering an invalid profile name. - Added
SetProfile
extension method toInitializationOptions
.
- Added
DeleteAccountAsync
toIAuthenticationService
. - Added
AccountLinkLimitExceeded
andClientUnlinkExternalIdNotFound
error codes toAuthenticationErrorCodes
. - Error code
AccountLinkLimitExceeded
is used when the current player's account has reached the limit of links for the provider when using a link operation. - Error code
ClientUnlinkExternalIdNotFound
is sent when no matching external id is found in the player'sUserInfo
when using an unlink operation.
- Added
UserInfo
property toIAuthenticationService
. - Added
UnlinkAppleAsync
function toIAuthenticationService
. - Added
UnlinkFacebookAsync
function toIAuthenticationService
. - Added
UnlinkGoogleAsync
function toIAuthenticationService
. - Added
UnlinkSteamAsync
function toIAuthenticationService
.
- Added
IsAuthorized
property. - Added
SessionTokenExists
property. - Added
GetUserInfoAsync
toIAuthenticationService
- Added
IsExpired
property. - Added
Expired
event. - Added
ClearSessionToken
function
- Updated UI Samples
- Updated the core SDK dependency to latest version.
- Added Samples to Package Manager
- Added
SignInWithExternalTokenAsync
andLinkWithExternalTokenAsync
toIAuthenticationService
.
- Made
ExternalTokenRequest
class public.
- Integrate with Package Manager under the Services tab filter and comply with the standard for the UI detail screen.
- Updated the
AuthenticationException
to 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
,LinkWithSteam
functions. - 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
Authentication
to return a Task, as opposed to a IAsyncOperation - Change the public API names of
Authentication
toAsync
- Change the
SignInFailed
event to takeAuthenticationException
instead of a string as parameter. It can provide more information for debugging purposes. - Fixed the
com.unity.services.core
package dependency version.
- Added
SignInWithApple
,LinkWithApple
,SignInWithGoogle
,LinkWithGoogle
,SignInWithFacebook
,LinkWithFacebook
functions. - Added
SignInWithSessionToken
- Added error codes used by the social scenarios to
AuthenticationError
.
- Rename the package from
com.unity.services.identity
tocom.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)