我有一个 ASP.Net Core 2.2 Web API,它使用 Steam 登录来使用这个包进行身份验证。我的身份验证如下所示:
services.AddAuthentication(options =>
{
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
options.LoginPath = "/Api/Login";
options.LogoutPath = "/Api/Logout";
})
.AddSteam(opt => { opt.CallbackPath = "/Home/SteamCallback"; opt.ApplicationKey = "XXXX"; });
我在我的 react 应用程序中使用这个 API,我想登录,所以我在我的 react 项目中添加了这个来登录
<a href="https://localhost:44390/api/login">Via Steam</a>
并且 /api/login 将用户重定向回 react 的主页:
[HttpGet("/api/login")]
public IActionResult Login(string provider="Steam")
{
return Challenge(new AuthenticationProperties { RedirectUri = "http://localhost:3000/" }, provider);
}
我知道尝试这样授权是很愚蠢的,但我不知道怎么做。他们还说在这里使用 JWT 是不安全的,所以我不得不使用 cookie,但无法处理如何传递记录的数据以成功响应和获取数据。