예제 #1
0
        public async Task <IActionResult> LoginAsync([FromBody] UserCredentialResource userCredential)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            TokenResponse response;

            if (userCredential.email != null)
            {
                response = await _authenticationService.CreateAccessTokenByEmailAsync(userCredential.email, userCredential.password);
            }
            else
            {
                if (userCredential.phone != null)
                {
                    response = await _authenticationService.CreateAccessTokenByPhoneAsync(userCredential.phone, userCredential.password);
                }
                else
                {
                    return(BadRequest());
                }
            }

            if (!response.Success)
            {
                return(BadRequest(response.Message));
            }

            var accessTokenResource = Mapper.AccessTokenResourceToAccessToken(response.Token);

            return(Ok(accessTokenResource));
        }