public async Task <ResponseModelBase> DoLogout([FromBody] AuthenticatedRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorModel.Of("invalid_request"));
            }

            var session = await ldb.GetSessionFromKey(model.SessionKey);

            if (session == null)
            {
                return(ErrorModel.Of("not_logged_in"));
            }
            await ldb.RemoveSession(session, session.Owner);

            return(Models.OkModel.Of("logged_out"));
        }
        public async Task <ResponseModelBase <bool> > RefreshSessionKey([FromBody] AuthenticatedRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorModel.Of(false, "invalid_request"));
            }

            var session = await ldb.GetSessionFromKey(model.SessionKey);

            if (session == null)
            {
                return(ErrorModel.Of(false, "not_logged_in")); //Auth failed
            }
            session.ExpiryDate = DateTime.UtcNow + ldb.LoginLength;
            await Task.Run(() => ldb.DBContext.Sessions.Update(session));

            await ldb.Save();

            return(Models.OkModel.Of(true));
        }
Beispiel #3
0
        public async Task <ResponseModelBase <UserServerTokenResponseModel> > CreateServerToken([FromBody] AuthenticatedRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorModel.Of <UserServerTokenResponseModel>(null, "invalid_request"));
            }

            var session = await ldb.GetSessionFromKey(model.SessionKey);

            if (session == null)
            {
                return(ErrorModel.Of <UserServerTokenResponseModel>(null, "not_logged_in")); //Auth failed
            }
            var token = new UserServerTokenModel();

            token.ExpiryDate  = DateTime.UtcNow + TimeSpan.FromMinutes(2);
            token.ServerToken = Guid.NewGuid().ToString("N");
            session.Owner.AddToken(token);

            await ldb.UpdateUser(session.Owner);

            return(OkModel.Of(new UserServerTokenResponseModel(token)));
        }