From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。
---
HotelPms.GrpcService/Services/AuthService.cs | 67 +++++++++++++++++++++++++++++++++
1 files changed, 67 insertions(+), 0 deletions(-)
diff --git a/HotelPms.GrpcService/Services/AuthService.cs b/HotelPms.GrpcService/Services/AuthService.cs
new file mode 100644
index 0000000..0032493
--- /dev/null
+++ b/HotelPms.GrpcService/Services/AuthService.cs
@@ -0,0 +1,67 @@
+using HotelPms.Data;
+using Grpc.Core;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.Logging;
+using Microsoft.IdentityModel.Tokens;
+using System;
+using System.IdentityModel.Tokens.Jwt;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace HotelPms.GrpcService
+{
+ /// <summary>
+ /// 認証処理
+ /// </summary>
+ public class AuthService : AuthCore.AuthCoreBase
+ {
+ private readonly ILogger<BuildingService> _logger;
+ private IConfiguration m_Configuration;
+
+ public AuthService(ILogger<BuildingService> logger, IConfiguration configuration)
+ {
+ _logger = logger;
+ m_Configuration = configuration;
+ }
+
+ public override Task<LoginResult> Login(DataRequest request, ServerCallContext context)
+ {
+ LoginResult ret = new LoginResult() { ErrNo = 0, ErrData = string.Empty, AccessToKen = string.Empty, RefreshToKen = string.Empty };
+
+ //DBチェック
+ //var result = await _signInManager.PasswordSignInAsync(login.Email, login.Password, false, false);
+
+ //if (!result.Succeeded) return BadRequest(new LoginResult { Successful = false, Error = "Username and password are invalid." });
+
+ var claims = new[]
+ {
+ new Claim(ClaimTypes.Name, request.LoginID)
+ };
+
+ var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(m_Configuration["JwtSecurityKey"]));
+ var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
+ var expiry = DateTime.Now.AddDays(Convert.ToInt32(m_Configuration["JwtExpiryInDays"]));
+ //var expiry = DateTime.Now.AddSeconds(30); //在 .net core 中有一个属性的值,默认是300,也就是5分钟后,假如生命周期设置的是30秒,还需要加上这300秒 //在验证令牌生命周期时间到后,立即过期;默认的是300秒 ClockSkew = TimeSpan.Zero, 按自己理解的注释的,
+
+
+ var token = new JwtSecurityToken(
+ m_Configuration["JwtIssuer"],
+ m_Configuration["JwtAudience"],
+ claims,
+ expires: expiry,
+ signingCredentials: creds
+ );
+
+ ret.AccessToKen = new JwtSecurityTokenHandler().WriteToken(token);
+ return Task.FromResult(ret);
+ }
+
+ public override Task<LoginResult> Logout(DataRequest request, ServerCallContext context)
+ {
+ LoginResult ret = new LoginResult() { ErrNo = 0, ErrData = string.Empty, AccessToKen = string.Empty, RefreshToKen = string.Empty };
+
+ return Task.FromResult(ret);
+ }
+ }
+}
--
Gitblit v1.10.0