Files
BuYuHouDuan/FishGameSrc/FishGameHost/Controllers/PlayerController.cs
T

71 lines
1.8 KiB
C#
Raw Normal View History

2026-10-12 16:22:04 +08:00
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;
}
/// <summary>
/// 玩家登录 - 生成 JWT token 并返回玩家基础信息(调试用)
/// </summary>
2026-10-12 16:22:04 +08:00
[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; }
}