summaryrefslogtreecommitdiffstats
path: root/src/server/Api/Internal/Account/CreateTokenRoute.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Api/Internal/Account/CreateTokenRoute.cs')
-rw-r--r--src/server/Api/Internal/Account/CreateTokenRoute.cs28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/server/Api/Internal/Account/CreateTokenRoute.cs b/src/server/Api/Internal/Account/CreateTokenRoute.cs
index ea0e01f..0b30cc0 100644
--- a/src/server/Api/Internal/Account/CreateTokenRoute.cs
+++ b/src/server/Api/Internal/Account/CreateTokenRoute.cs
@@ -1,11 +1,17 @@
+using System.Text;
+
namespace IOL.BookmarkThing.Server.Api.Internal.Account;
public class CreateTokenRoute : RouteBaseInternalSync.WithRequest<CreateTokenRequest>.WithActionResult
{
private readonly AppDbContext _context;
+ private readonly IConfiguration _configuration;
+ private readonly ILogger<CreateTokenRoute> _logger;
- public CreateTokenRoute(AppDbContext context) {
+ public CreateTokenRoute(AppDbContext context, IConfiguration configuration, ILogger<CreateTokenRoute> logger) {
_context = context;
+ _configuration = configuration;
+ _logger = logger;
}
[ApiVersionNeutral]
@@ -17,18 +23,24 @@ public class CreateTokenRoute : RouteBaseInternalSync.WithRequest<CreateTokenReq
return NotFound(new ErrorResult("User does not exist"));
}
- if (request.Name.IsNullOrWhiteSpace()) {
- return BadRequest(new ErrorResult("Token name is required"));
+ var token_entropy = _configuration.GetValue<string>("TOKEN_ENTROPY");
+ if (token_entropy.IsNullOrWhiteSpace()) {
+ _logger.LogWarning("No token entropy is available in env:TOKEN_ENTROPY, Basic auth is disabled");
+ return NotFound();
}
- var token = new AccessToken {
+ var access_token = new AccessToken {
Id = Guid.NewGuid(),
- Name = request.Name,
- User = user
+ User = user,
+ ExpiryDate = request.ExpiryDate.ToUniversalTime(),
+ AllowCreate = request.AllowCreate,
+ AllowRead = request.AllowRead,
+ AllowDelete = request.AllowDelete,
+ AllowUpdate = request.AllowUpdate
};
- _context.AccessTokens.Add(token);
+ _context.AccessTokens.Add(access_token);
_context.SaveChanges();
- return Ok(token);
+ return Ok(Convert.ToBase64String(Encoding.UTF8.GetBytes(access_token.Id.ToString().EncryptWithAes(token_entropy))));
}
}