Implemented register functionality

This commit is contained in:
Masu Baumgartner
2024-11-03 20:55:40 +01:00
parent 81d8bc45ee
commit 06f7731011
2 changed files with 18 additions and 13 deletions

View File

@@ -47,22 +47,22 @@ public class OAuth2Controller : Controller
if (action == "register") if (action == "register")
{ {
await Response.WriteAsync( await Response.WriteAsync(
await RenderPage<Register>(parmeters => await RenderPage<Register>(parameters =>
{ {
parmeters.Add("ClientId", clientId); parameters.Add("ClientId", clientId);
parmeters.Add("ResponseType", responseType); parameters.Add("ResponseType", responseType);
parmeters.Add("RedirectUri", redirectUri); parameters.Add("RedirectUri", redirectUri);
}) })
); );
} }
else else
{ {
await Response.WriteAsync( await Response.WriteAsync(
await RenderPage<Login>(parmeters => await RenderPage<Login>(parameters =>
{ {
parmeters.Add("ClientId", clientId); parameters.Add("ClientId", clientId);
parmeters.Add("ResponseType", responseType); parameters.Add("ResponseType", responseType);
parmeters.Add("RedirectUri", redirectUri); parameters.Add("RedirectUri", redirectUri);
}) })
); );
} }
@@ -74,7 +74,9 @@ public class OAuth2Controller : Controller
[FromQuery(Name = "client_id")] string clientId, [FromQuery(Name = "client_id")] string clientId,
[FromQuery(Name = "redirect_uri")] string redirectUri, [FromQuery(Name = "redirect_uri")] string redirectUri,
[FromForm(Name = "email")] string email, [FromForm(Name = "email")] string email,
[FromForm(Name = "password")] string password [FromForm(Name = "password")] string password,
[FromForm(Name = "username")] string username = "",
[FromQuery(Name = "action")] string action = "login"
) )
{ {
if (responseType != "code") if (responseType != "code")
@@ -83,7 +85,12 @@ public class OAuth2Controller : Controller
if (!await OAuth2Service.IsValidAuthorization(clientId, redirectUri)) if (!await OAuth2Service.IsValidAuthorization(clientId, redirectUri))
throw new HttpApiException("Invalid authorization request", 400); throw new HttpApiException("Invalid authorization request", 400);
var user = await AuthService.Login(email, password); User user;
if (action == "register")
user = await AuthService.Register(username, email, password);
else
user = await AuthService.Login(email, password);
var code = await OAuth2Service.GenerateCode(data => { data.Add("userId", user.Id); }); var code = await OAuth2Service.GenerateCode(data => { data.Add("userId", user.Id); });

View File

@@ -12,12 +12,10 @@ namespace Moonlight.ApiServer.Services;
public class AuthService public class AuthService
{ {
private readonly DatabaseRepository<User> UserRepository; private readonly DatabaseRepository<User> UserRepository;
private readonly AppConfiguration Configuration;
public AuthService(DatabaseRepository<User> userRepository, AppConfiguration configuration) public AuthService(DatabaseRepository<User> userRepository)
{ {
UserRepository = userRepository; UserRepository = userRepository;
Configuration = configuration;
} }
public Task<User> Register(string username, string email, string password) public Task<User> Register(string username, string email, string password)