checkpoint
This commit is contained in:
@@ -54,24 +54,21 @@ namespace Gameboard.ShogiUI.Sockets.Controllers
|
||||
[HttpGet("Token")]
|
||||
public async Task<IActionResult> GetToken()
|
||||
{
|
||||
var identityId = User.UserId();
|
||||
if (string.IsNullOrWhiteSpace(identityId))
|
||||
var user = await gameboardManager.ReadUser(User);
|
||||
if (user == null)
|
||||
{
|
||||
if (await gameboardManager.CreateUser(User))
|
||||
{
|
||||
user = await gameboardManager.ReadUser(User);
|
||||
}
|
||||
}
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
return Unauthorized();
|
||||
}
|
||||
|
||||
var user = await gameboardManager.ReadUser(User);
|
||||
if (user == null)
|
||||
{
|
||||
user = new User(identityId);
|
||||
var success = await gameboardRepository.CreateUser(user);
|
||||
if (!success)
|
||||
{
|
||||
return Unauthorized();
|
||||
}
|
||||
}
|
||||
|
||||
var token = tokenCache.GenerateToken(user.Name);
|
||||
var token = tokenCache.GenerateToken(user.Id);
|
||||
return new JsonResult(new GetTokenResponse(token));
|
||||
}
|
||||
|
||||
@@ -79,35 +76,28 @@ namespace Gameboard.ShogiUI.Sockets.Controllers
|
||||
[AllowAnonymous]
|
||||
public async Task<IActionResult> GetGuestToken()
|
||||
{
|
||||
if (Guid.TryParse(User.UserId(), out Guid webSessionId))
|
||||
var user = await gameboardManager.ReadUser(User);
|
||||
if (user == null)
|
||||
{
|
||||
var user = await gameboardRepository.ReadGuestUser(webSessionId);
|
||||
if (user != null)
|
||||
// Create a guest user.
|
||||
var newUser = Models.User.CreateGuestUser(Guid.NewGuid().ToString());
|
||||
var success = await gameboardRepository.CreateUser(newUser);
|
||||
if (!success)
|
||||
{
|
||||
var token = tokenCache.GenerateToken(webSessionId.ToString());
|
||||
return new JsonResult(new GetGuestTokenResponse(user.Name, token));
|
||||
return Conflict();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Setup a guest user.
|
||||
var newSessionId = Guid.NewGuid();
|
||||
var user = new User(Guid.NewGuid().ToString(), newSessionId);
|
||||
if (await gameboardRepository.CreateUser(user))
|
||||
{
|
||||
var identity = user.CreateGuestUserIdentity();
|
||||
await this.HttpContext.SignInAsync(
|
||||
CookieAuthenticationDefaults.AuthenticationScheme,
|
||||
new ClaimsPrincipal(identity),
|
||||
authenticationProps
|
||||
);
|
||||
|
||||
var token = tokenCache.GenerateToken(newSessionId.ToString());
|
||||
return new JsonResult(new GetGuestTokenResponse(user.Name, token));
|
||||
}
|
||||
var identity = newUser.CreateClaimsIdentity();
|
||||
await HttpContext.SignInAsync(
|
||||
CookieAuthenticationDefaults.AuthenticationScheme,
|
||||
new ClaimsPrincipal(identity),
|
||||
authenticationProps
|
||||
);
|
||||
user = newUser;
|
||||
}
|
||||
|
||||
return Unauthorized();
|
||||
var token = tokenCache.GenerateToken(user.Id.ToString());
|
||||
return this.Ok(new GetGuestTokenResponse(user.Id, user.DisplayName, token));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user