diff --git a/Controllers/LoginController.cs b/Controllers/LoginController.cs
index e69de29..65c013f 100644
--- a/Controllers/LoginController.cs
+++ b/Controllers/LoginController.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Linq;
+using System.Threading.Tasks;
+
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
+
+using Icarus.Controllers.Managers;
+using Icarus.Controllers.Utilities;
+using Icarus.Models;
+using Icarus.Models.Context;
+
+namespace Icarus.Controllers
+{
+ [Route("api/login")]
+ [ApiController]
+ public class LoginController : ControllerBase
+ {
+ #region Fields
+ private IConfiguration _config;
+ #endregion
+
+
+ #region Properties
+ #endregion
+
+
+ #region Contructors
+ public LoginController(IConfiguration config)
+ {
+ _config = config;
+ }
+ #endregion
+
+
+ #region HTTP endpoints
+ public IActionResult Post([FromBody] User user)
+ {
+ Console.WriteLine($"Username: {user.Username}");
+
+ TokenManager tk = new TokenManager(_config);
+
+ LoginResult loginRes = tk.RetrieveLoginResult(user);
+
+ return Ok(loginRes);
+ }
+ #endregion
+ }
+}
diff --git a/Controllers/Managers/TokenManager.cs b/Controllers/Managers/TokenManager.cs
new file mode 100644
index 0000000..871004d
--- /dev/null
+++ b/Controllers/Managers/TokenManager.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+using Microsoft.Extensions.Configuration;
+using RestSharp;
+
+using Icarus.Models;
+
+namespace Icarus.Controllers.Managers
+{
+ public class TokenManager
+ {
+ #region Fields
+ private IConfiguration _config;
+ #endregion
+
+
+ #region Properties
+ #endregion
+
+
+ #region Constructors
+ public TokenManager(IConfiguration config)
+ {
+ _config = config;
+ InitializeValues();
+ }
+ #endregion
+
+
+ #region Methods
+ public LoginResult RetrieveLoginResult(User user)
+ {
+ // TODO: Request a token from Auth0
+
+ return new LoginResult
+ {
+ UserId = 0,
+ Username = user.Username,
+ Token = "gggg",
+ Expiration = 500
+ };
+ }
+
+ private void InitializeValues()
+ {
+ // TODO: implement parse values necessary to
+ // retrieve a token from the appSettings using
+ // the _config object
+ }
+ #endregion
+ }
+}
diff --git a/Icarus.csproj b/Icarus.csproj
index a2860d1..f16d28e 100644
--- a/Icarus.csproj
+++ b/Icarus.csproj
@@ -22,6 +22,7 @@
+
diff --git a/Models/LoginResult.cs b/Models/LoginResult.cs
new file mode 100644
index 0000000..3edb3f2
--- /dev/null
+++ b/Models/LoginResult.cs
@@ -0,0 +1,18 @@
+using System;
+
+using Newtonsoft.Json;
+
+namespace Icarus.Models
+{
+ public class LoginResult
+ {
+ [JsonProperty("id")]
+ public int UserId { get; set; }
+ [JsonProperty("username")]
+ public string Username { get; set; }
+ [JsonProperty("token")]
+ public string Token { get; set; }
+ [JsonProperty("expiration")]
+ public int Expiration { get; set; }
+ }
+}