Class ExternalLoginService
Provides services for managing external login providers and tokens for users and members.
Namespace: Umbraco.Cms.Core.Services
Assembly: Umbraco.Core.dll
Syntax
public class ExternalLoginService : RepositoryService, IExternalLoginWithKeyService, IService
Remarks
This service handles OAuth/OpenID Connect external login associations, allowing users to authenticate via external providers like Google, Microsoft, Facebook, etc.
Constructors
View SourceExternalLoginService(ICoreScopeProvider, ILoggerFactory, IEventMessagesFactory, IExternalLoginWithKeyRepository, IUserRepository)
Initializes a new instance of the ExternalLoginService class.
Declaration
public ExternalLoginService(ICoreScopeProvider provider, ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory, IExternalLoginWithKeyRepository externalLoginRepository, IUserRepository userRepository)
Parameters
| Type | Name | Description |
|---|---|---|
| ICoreScopeProvider | provider | The core scope provider for database operations. |
| ILoggerFactory | loggerFactory | The logger factory for creating loggers. |
| IEventMessagesFactory | eventMessagesFactory | The factory for creating event messages. |
| IExternalLoginWithKeyRepository | externalLoginRepository | The repository for external login data access. |
| IUserRepository | userRepository | The repository for user data access. |
Methods
View SourceDeleteUserLogins(Guid)
Deletes all user logins - normally used when a member is deleted.
Declaration
public void DeleteUserLogins(Guid userOrMemberKey)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | userOrMemberKey |
Find(string, string)
Finds external logins matching the specified login provider and provider key.
Declaration
public IEnumerable<IIdentityUserLogin> Find(string loginProvider, string providerKey)
Parameters
| Type | Name | Description |
|---|---|---|
| string | loginProvider | The name of the external login provider (e.g., "Google", "Microsoft"). |
| string | providerKey | The unique key assigned by the external provider for the user. |
Returns
| Type | Description |
|---|---|
| IEnumerable<IIdentityUserLogin> | A collection of matching external login records. |
GetExternalLoginTokens(Guid)
Returns all user login tokens assigned.
Declaration
public IEnumerable<IIdentityUserToken> GetExternalLoginTokens(Guid userOrMemberKey)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | userOrMemberKey |
Returns
| Type | Description |
|---|---|
| IEnumerable<IIdentityUserToken> |
GetExternalLogins(Guid)
Returns all user logins assigned.
Declaration
public IEnumerable<IIdentityUserLogin> GetExternalLogins(Guid userOrMemberKey)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | userOrMemberKey |
Returns
| Type | Description |
|---|---|
| IEnumerable<IIdentityUserLogin> |
PurgeLoginsForRemovedProviders(IEnumerable<string>)
Deletes external logins and invalidates sessions for users that aren't associated with the current collection of providers.
Declaration
public void PurgeLoginsForRemovedProviders(IEnumerable<string> currentLoginProviders)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerable<string> | currentLoginProviders | The names of the currently configured providers. |
Save(Guid, IEnumerable<IExternalLoginToken>)
Saves the external login tokens associated with the user.
Declaration
public void Save(Guid userOrMemberKey, IEnumerable<IExternalLoginToken> tokens)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | userOrMemberKey | The user or member key associated with the logins. |
| IEnumerable<IExternalLoginToken> | tokens |
Remarks
This will replace all external login tokens for the user.
Save(Guid, IEnumerable<IExternalLogin>)
Saves the external logins associated with the user.
Declaration
public void Save(Guid userOrMemberKey, IEnumerable<IExternalLogin> logins)
Parameters
| Type | Name | Description |
|---|---|---|
| Guid | userOrMemberKey | The user or member key associated with the logins. |
| IEnumerable<IExternalLogin> | logins |
Remarks
This will replace all external login provider information for the user.