Exemple #1
0
        public async Task <HttpResponseMessage> Put()
        {
            HttpContent requestContent = Request.Content;
            string      jsonContent    = await requestContent.ReadAsStringAsync();

            LoginCredentials credentials = JsonConvert.DeserializeObject <LoginCredentials>(jsonContent);

            if (!credentials.Username.IsUsernameValid() ||
                !credentials.Password.IsPasswordValid())
            {
                return(HelperClass.JsonHttpResponse <Object>(null));
            }
            User user = _authService.FindByUsername(credentials.Username);

            if (user == null)
            {
                user = _authService.FindByEmail(credentials.Username);
            }
            if (user == null)
            {
                return(HelperClass.JsonHttpResponse <Object>(null));
            }
            if (user.Password.Decrypt() == credentials.Password)
            {
                var loginSession = _sessionManager.CreateNewSession(user);
                return(HelperClass.JsonHttpResponse(loginSession));
            }
            return(HelperClass.JsonHttpResponse <Object>(null));
        }
Exemple #2
0
        public async Task <object> Get(GetLocalUser request)
        {
            var user = await _connectManager.GetLocalUser(request.ConnectUserId).ConfigureAwait(false);

            if (user == null)
            {
                throw new ResourceNotFoundException();
            }

            var auth = _authContext.GetAuthorizationInfo(Request);

            if (string.IsNullOrWhiteSpace(auth.Client))
            {
                return(ToOptimizedResult(new ConnectAuthenticationExchangeResult
                {
                    AccessToken = user.ConnectAccessKey,
                    LocalUserId = user.Id.ToString("N")
                }));
            }

            var session = await _sessionManager.CreateNewSession(new AuthenticationRequest
            {
                App            = auth.Client,
                AppVersion     = auth.Version,
                DeviceId       = auth.DeviceId,
                DeviceName     = auth.Device,
                RemoteEndPoint = Request.RemoteIp,
                Username       = user.Name,
                UserId         = user.Id.ToString("N")
            }).ConfigureAwait(false);

            return(ToOptimizedResult(new ConnectAuthenticationExchangeResult
            {
                AccessToken = session.AccessToken,
                LocalUserId = session.User.Id
            }));
        }
Exemple #3
0
        public ActionResult <SessionDto> Post([FromBody] SessionDto session)
        {
            session.Id = _sessionManager.CreateNewSession(session);

            return(Ok(session));
        }