ExternalAuthenticationService
ExternalAuthenticationService
This is a helper service which exposes methods related to looking up and creating Users based on an external AuthenticationStrategy.
class ExternalAuthenticationService {
    constructor(connection: TransactionalConnection, roleService: RoleService, historyService: HistoryService, customerService: CustomerService, administratorService: AdministratorService, channelService: ChannelService)
    findCustomerUser(ctx: RequestContext, strategy: string, externalIdentifier: string, checkCurrentChannelOnly:  = true) => Promise<User | undefined>;
    findAdministratorUser(ctx: RequestContext, strategy: string, externalIdentifier: string) => Promise<User | undefined>;
    createCustomerAndUser(ctx: RequestContext, config: {
            strategy: string;
            externalIdentifier: string;
            emailAddress: string;
            firstName: string;
            lastName: string;
            verified?: boolean;
        }) => Promise<User>;
    createAdministratorAndUser(ctx: RequestContext, config: {
            strategy: string;
            externalIdentifier: string;
            identifier: string;
            emailAddress?: string;
            firstName?: string;
            lastName?: string;
            roles: Role[];
        }) => ;
    findUser(ctx: RequestContext, strategy: string, externalIdentifier: string) => Promise<User | undefined>;
}
constructor
(connection: TransactionalConnection, roleService: RoleService, historyService: HistoryService, customerService: CustomerService, administratorService: AdministratorService, channelService: ChannelService) => ExternalAuthenticationServicefindCustomerUser
(ctx: RequestContext, strategy: string, externalIdentifier: string, checkCurrentChannelOnly:  = true) => Promise<User | undefined>Looks up a User based on their identifier from an external authentication provider, ensuring this User is associated with a Customer account.
By default, only customers in the currently-active Channel will be checked.
By passing false as the checkCurrentChannelOnly argument, all channels
will be checked.
findAdministratorUser
(ctx: RequestContext, strategy: string, externalIdentifier: string) => Promise<User | undefined>Looks up a User based on their identifier from an external authentication provider, ensuring this User is associated with an Administrator account.
createCustomerAndUser
(ctx: RequestContext, config: {
             strategy: string;
             externalIdentifier: string;
             emailAddress: string;
             firstName: string;
             lastName: string;
             verified?: boolean;
         }) => Promise<User>If a customer has been successfully authenticated by an external authentication provider, yet cannot
be found using findCustomerUser, then we need to create a new User and
Customer record in Vendure for that user. This method encapsulates that logic as well as additional
housekeeping such as adding a record to the Customer's history.
createAdministratorAndUser
(ctx: RequestContext, config: {
             strategy: string;
             externalIdentifier: string;
             identifier: string;
             emailAddress?: string;
             firstName?: string;
             lastName?: string;
             roles: Role[];
         }) => If an administrator has been successfully authenticated by an external authentication provider, yet cannot
be found using findAdministratorUser, then we need to create a new User and
Administrator record in Vendure for that user.
findUser
(ctx: RequestContext, strategy: string, externalIdentifier: string) => Promise<User | undefined>