public ReadUserM Login(string email, string password) { ReadUserM user = new ReadUserM(); //비밀번호 검증 bool verified = userService.VerifyUser(email, password); // 비밀번호 검증 완료 시 if (verified) { UserT userEntity = userService.GetUserByEmail(email); user = mapper.Map <UserT, ReadUserM>(userEntity); // 토큰생성 TokenT authEntity = authService.CreateToken(user); TokenM token = mapper.Map <TokenT, TokenM>(authEntity); user.Token = token; } else { throw new IncorrectDataException("비밀번호가 올바르지 않습니다.", "비밀번호 오류", LayerID.AuthController); } logger.Log(LogLevel.Info, string.Format("호출 성공 : {0}", MethodBase.GetCurrentMethod().Name)); return(user); }
public async Task <TokenM> RefreshToken(string refreshToken) { var result = new TokenM(); using (var client = new HttpClient()) { var discovery = await DiscoveryService.GetDiscovery(); var response = await client.RequestRefreshTokenAsync(new RefreshTokenRequest { Address = discovery.TokenEndpoint, ClientId = Config.ClientId, ClientSecret = Config.ClientSecret, RefreshToken = refreshToken }); if (response.IsError) { throw new Exception(response.Error); } result = Mapper.Map <TokenM>(response); } return(result); }
public async Task <TokenM> GetToken(string phone, string code) { var result = new TokenM(); using (var client = new HttpClient()) { var parameters = new Dictionary <string, string> { { "phone_number", phone }, { "verification_token", code } }; var discovery = await DiscoveryService.GetDiscovery(); var response = await client.RequestTokenAsync(new TokenRequest { Address = discovery.TokenEndpoint, GrantType = Config.GrandType, ClientId = Config.ClientId, ClientSecret = Config.ClientSecret, Parameters = parameters }); if (response.IsError) { throw new Exception(response.Error); } result = Mapper.Map <TokenM>(response); } return(result); }
public TokenM RefreshToken(string accessToken, string refreshToken) { TokenM tokenModel = new TokenM(); TokenT token = authService.ReadAccessToken(accessToken, refreshToken); DateTime validTo = new JwtSecurityTokenHandler().ReadJwtToken(accessToken).ValidTo; DateTime tokenExpiredTime = CommonHelper.GetDateTime(validTo); if (tokenExpiredTime < DateTime.Now) { UserT userEntity = userService.GetUser(token.UserNo); ReadUserM user = mapper.Map <UserT, ReadUserM>(userEntity); TokenT authEntity = authService.CreateToken(user); tokenModel = mapper.Map <TokenT, TokenM>(authEntity); } else { throw new BadRequestException("토큰 만료 시간이 유효합니다.", "토큰 오류", LayerID.AuthController); } logger.Log(LogLevel.Info, string.Format("호출 성공 : {0}", MethodBase.GetCurrentMethod().Name)); return(tokenModel); }