添加项目文件。
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
using System.Security.Claims;
|
||||
using System.Text;
|
||||
using JWTHelper;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace FishGameHost.Controllers;
|
||||
|
||||
[ApiController]
|
||||
[Route("api/[controller]")]
|
||||
public class PlayerController : ControllerBase
|
||||
{
|
||||
private readonly JwtTools _jwtTools;
|
||||
|
||||
public PlayerController(JwtTools jwtTools)
|
||||
{
|
||||
_jwtTools = jwtTools;
|
||||
}
|
||||
|
||||
[HttpPost("login")]
|
||||
public IActionResult Login([FromBody] PlayerLoginRequest request)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(request.UserId))
|
||||
request.UserId = "u_" + DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
|
||||
if (string.IsNullOrWhiteSpace(request.Nickname))
|
||||
request.Nickname = "玩家";
|
||||
|
||||
var userIdReversed = Reverse(request.UserId);
|
||||
var claims = new[]
|
||||
{
|
||||
new Claim("uid", userIdReversed),
|
||||
new Claim("uname", request.Nickname),
|
||||
};
|
||||
var token = _jwtTools.CreateToken(claims);
|
||||
|
||||
return Ok(new
|
||||
{
|
||||
code = 200,
|
||||
data = new
|
||||
{
|
||||
token,
|
||||
player = new
|
||||
{
|
||||
userId = request.UserId,
|
||||
playerId = 1,
|
||||
nickname = request.Nickname,
|
||||
gold = 100000L,
|
||||
diamond = 1000,
|
||||
playerlvl = 1,
|
||||
viplvl = 0
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static string Reverse(string s)
|
||||
{
|
||||
var arr = s.ToCharArray();
|
||||
Array.Reverse(arr);
|
||||
return new string(arr);
|
||||
}
|
||||
}
|
||||
|
||||
public class PlayerLoginRequest
|
||||
{
|
||||
public string? UserId { get; set; }
|
||||
public string? Nickname { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user