public async Task <IActionResult> GetExternalLogins([FromBody][Required] GetExternalLogins getExternalLogins, CancellationToken cancellationToken = default) { var logins = await this.SecurityManager .GetExternalLoginsAsync(getExternalLogins, cancellationToken); return(this.Ok(logins)); }
public async Task <IList <ExternalLoginModel> > Handle(GetExternalLogins request, CancellationToken cancellationToken) { var user = await _userManager.GetUserAsync(request.User); if (user == null) { return(null); // return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } var result = await _userManager.GetLoginsAsync(user); return(result.Select(x => new Models.ExternalLoginModel { LoginProvider = x.LoginProvider, ProviderKey = x.ProviderKey, ProviderDisplayName = x.ProviderDisplayName }).ToList()); }
public async Task <IList <ExternalLoginModel> > ExternalLogins(GetExternalLogins request) { request.User = _currentUserProvider.GetUser(); return(await _mediator.Send(request)); }
/// <summary> /// Gets external logins for a user. /// </summary> /// <param name="getExternalLogins">The <see cref="GetExternalLogins"/>.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/>.</param> /// <returns>A collection of <see cref="GetExternalLogin"/>.</returns> public virtual async Task <IEnumerable <GetExternalLogin> > GetExternalLoginsAsync(GetExternalLogins getExternalLogins, CancellationToken cancellationToken = default) { if (getExternalLogins == null) { throw new ArgumentNullException(nameof(getExternalLogins)); } var user = await this.UserManager .FindByIdAsync(getExternalLogins.UserId); var logins = await this.UserManager .GetLoginsAsync(user); return(logins .Select(x => new GetExternalLogin { UserId = user.Id, ProviderKey = x.ProviderKey, LoginProvider = x.LoginProvider, AllowRemoval = user.PasswordHash != null || logins.Count > 1 })); }