Saya menggunakan .NET Core 2.1 dan saya sangat menyadari bahwa pertanyaannya bukan tentang Core. Namun internet kurang dan Google membawa saya ke sini sehingga berharap untuk menyelamatkan seseorang beberapa jam.
Startup.cs
services.AddCors(o => o.AddPolicy("AllowAll", builder =>
{
builder
.WithOrigins("http://localhost:3000") // important
.AllowCredentials() // important
.AllowAnyMethod()
.AllowAnyHeader(); // obviously just for testing
}));
client.js
const resp = await fetch("https://localhost:5001/api/user", {
method: 'POST',
credentials: 'include', // important
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
Controllers/LoginController.cs
namespace WebServer.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
[HttpPost]
public IEnumerable<string> Post([FromBody]LoginForm lf)
{
string prevUsername = HttpContext.Session.GetString("username");
Console.WriteLine("Previous username: " + prevUsername);
HttpContext.Session.SetString("username", lf.username);
return new string[] { lf.username, lf.password };
}
}
}
Perhatikan bahwa sesi menulis dan membaca berfungsi, namun sepertinya tidak ada cookie yang diteruskan ke browser. Setidaknya saya tidak dapat menemukan tajuk "Set-Cookie" di mana saja.