forked from Kieran/void.cat
Fix email verification code
This commit is contained in:
parent
1199ea0174
commit
fd90d14b19
@ -1,4 +1,5 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using VoidCat.Database;
|
using VoidCat.Database;
|
||||||
using VoidCat.Model;
|
using VoidCat.Model;
|
||||||
using VoidCat.Services.Abstractions;
|
using VoidCat.Services.Abstractions;
|
||||||
@ -137,17 +138,16 @@ public class UserController : Controller
|
|||||||
/// Confirm email verification code
|
/// Confirm email verification code
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id">User id to verify</param>
|
/// <param name="id">User id to verify</param>
|
||||||
/// <param name="code">Verification code to check</param>
|
/// <param name="req">Verification code to check</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
[Route("verify")]
|
[Route("verify")]
|
||||||
public async Task<IActionResult> VerifyCode([FromRoute] string id, [FromBody] string code)
|
public async Task<IActionResult> VerifyCode([FromRoute] string id, [FromBody] VerifyCodeRequest req)
|
||||||
{
|
{
|
||||||
var user = await GetAuthorizedUser(id);
|
var user = await GetAuthorizedUser(id);
|
||||||
if (user == default) return Unauthorized();
|
if (user == default) return Unauthorized();
|
||||||
|
|
||||||
var token = code.FromBase58Guid();
|
if (!await _emailVerification.VerifyCode(user, req.Code)) return BadRequest();
|
||||||
if (!await _emailVerification.VerifyCode(user, token)) return BadRequest();
|
|
||||||
|
|
||||||
user.Flags |= UserFlags.EmailVerified;
|
user.Flags |= UserFlags.EmailVerified;
|
||||||
await _store.UpdateProfile(user);
|
await _store.UpdateProfile(user);
|
||||||
@ -167,4 +167,11 @@ public class UserController : Controller
|
|||||||
var gid = id.FromBase58Guid();
|
var gid = id.FromBase58Guid();
|
||||||
return await _store.Get(gid);
|
return await _store.Get(gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class VerifyCodeRequest
|
||||||
|
{
|
||||||
|
[JsonProperty("code")]
|
||||||
|
[JsonConverter(typeof(Base58GuidConverter))]
|
||||||
|
public Guid Code { get; init; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user