private JwtSecurityToken GetJwtSecurityToken(User user, ExternalLoginProvider loginProvider = ExternalLoginProvider.Local, string externalToken = null) { return(new JwtSecurityToken( issuer: _configuration["TokenConfiguration:Issuer"], audience: _configuration["TokenConfiguration:Audience"], claims: GetTokenClaims(user, loginProvider, externalToken), expires: DateTime.UtcNow.AddMinutes(int.Parse(_configuration["TokenConfiguration:TimeInMinutesOfJwtLife"])), signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["TokenConfiguration:Key"])), SecurityAlgorithms.HmacSha256) )); }
public Task <User> GetUserAsync(ExternalLoginProvider loginProvider, string providerKey) { return(Task <User> .Factory.StartNew(() => { return this.BaseDal.Execute(IsolationLevel.ReadCommitted, (tran) => { return this.UsersDal.GetUser(tran, loginProvider, providerKey); }); })); }
public AuthController( ExternalLoginProvider externalLoginProvider, IAccountSerivce accountService, JwtIssuer jwtIssuer, AppSettings appSettings) { this.externalLoginProvider = externalLoginProvider; this.accountService = accountService; this.jwtIssuer = jwtIssuer; this.appSettings = appSettings; }
public UserDb GetUser(SqlTransaction transaction, ExternalLoginProvider loginProvider, string providerKey) { using (var cmd = new SqlCommand("[dbo].[spGetExternalUser]", transaction.Connection, transaction)) { cmd.Parameters.AddWithValue("providerId", loginProvider); cmd.Parameters.AddWithValue("providerKey", providerKey); cmd.CommandType = CommandType.StoredProcedure; return(GetSingleUser(cmd)); } }
private IEnumerable <Claim> GetTokenClaims(User user, ExternalLoginProvider loginProvider, string externalToken) { var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim(JwtRegisteredClaimNames.Email, user.Email), new Claim(JwtRegisteredClaimNames.NameId, user.Id) }; if (externalToken != null) { claims.Add(new Claim(JwtRegisteredClaimNames.CHash, externalToken)); claims.Add(new Claim(JwtRegisteredClaimNames.Typ, loginProvider.ToString())); } return(claims); }
public ChallengeResult(ExternalLoginProvider loginProvider, ApiController controller) { LoginProvider = loginProvider; Request = controller.Request; }
private async void SocialLoginAsync(ExternalLoginProvider externalLoginProvider) { System.Diagnostics.Debug.WriteLine($"Login with {externalLoginProvider.Name} button tapped..."); }
public Task<User> FindAsync(ExternalLoginProvider loginProvider, string providerKey) { return this.UsersManager.GetUserAsync(loginProvider, providerKey); }
private ExternalUserDto CreateExternalUserFromClaims(ICollection <Claim> claims, ExternalLoginProvider externalLoginProvider) { ExternalUserDto externalUserDto; if (externalLoginProvider == ExternalLoginProvider.Google) { externalUserDto = GetUserFromGoogle(claims); } else { externalUserDto = GetUserFromOpenId(claims); } return(externalUserDto); }
public UserDb GetUser(SqlTransaction transaction, ExternalLoginProvider loginProvider, string providerKey) { using (var cmd = new SqlCommand("[dbo].[spGetExternalUser]", transaction.Connection, transaction)) { cmd.Parameters.AddWithValue("providerId", loginProvider); cmd.Parameters.AddWithValue("providerKey", providerKey); cmd.CommandType = CommandType.StoredProcedure; return GetSingleUser(cmd); } }
public Task<User> GetUserAsync(ExternalLoginProvider loginProvider, string providerKey) { return Task<User>.Factory.StartNew(() => { return this.BaseDal.Execute(IsolationLevel.ReadCommitted, (tran) => { return this.UsersDal.GetUser(tran, loginProvider, providerKey); }); }); }
public bool IsProviderAvailable(ExternalLoginProvider loginProvider) { return(_availableProviderOptions.Providers.Any(provider => provider == loginProvider)); }
private async Task <IActionResult> HandleExternalInfo(IPAddress userIp, ExternalLoginDataDto externalData, ExternalLoginProvider loginProvider) { _logger.LogInformation($"User with ip: {userIp} started facebook logging flow"); if (externalData == null) { _logger.LogInformation( $"User with ip: {userIp} tried to login with external login provider. Unable to validate external token"); return(BadRequest()); } var result = await _authService.ExternalLogin(externalData, loginProvider); if (result == null) { _logger.LogInformation( $"User with ip: {userIp} tried to login with external login provider. Unable to register user"); return(BadRequest()); } return(Ok(result.Token)); }
public Task <User> FindAsync(ExternalLoginProvider loginProvider, string providerKey) { return(this.UsersManager.GetUserAsync(loginProvider, providerKey)); }
public SocialButton(ExternalLoginProvider externalLoginProvider, ICommand tapCommand) { ExternalLoginProvider = externalLoginProvider; TapCommand = tapCommand; }
private async Task <User> RegisterUserFromExternalProvider(ExternalLoginDataDto externalData, ExternalLoginProvider loginProvider) { var user = _mapper.Map <ExternalUserDto, User>(externalData.ExternalUser); user.RegisteredWith = loginProvider; var result = await _userManager.CreateAsync(user); return(result.Succeeded ? user : null); }
public async Task <TokenResponseDto> ExternalLogin(ExternalLoginDataDto externalData, ExternalLoginProvider loginProvider) { var user = await GetUserWithBoards(externalData.ExternalUser.Email); if (user == null) { user = await RegisterUserFromExternalProvider(externalData, loginProvider); } if (user == null) { return(null); } if (!user.EmailConfirmed) { user.EmailConfirmed = true; await _userManager.UpdateAsync(user); } var token = GetJwtSecurityToken(user, loginProvider, externalData.AccessToken); var tokenResponse = CreateTokenResponse(token, user); return(tokenResponse); }