From f839ea91bb54a523dd9ec98e03007e85f108bd74 Mon Sep 17 00:00:00 2001
From: KIM BYEONG JU <100591433+hagisilm@users.noreply.github.com>
Date: Tue, 28 May 2024 22:42:29 +0900
Subject: [PATCH] add: Korean readme translation
---
README.ko.md | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 171 insertions(+), 1 deletion(-)
diff --git a/README.ko.md b/README.ko.md
index 672ba60..5930002 100644
--- a/README.ko.md
+++ b/README.ko.md
@@ -1 +1,171 @@
-Waiting contributions ๐
+
+
+---
+
+
+
+
+
+---
+
+
+
+
+
+
+
+### ์๊ฐ
+
+"ํ ์ค ์ฝ๋"๋ ์ /๊ตฌ ํ๋ก์ ํธ์ ๋ํ ์ ์ ๊ด๋ฆฌ ์น์ ์ถ๊ฐํฉ๋๋ค.
+
+
+
+
+### ํน์ง
+
+- ํธํ์ฑ: .NET Identity ํ์ค์ ๋ฐ๋ฅด๋ JWT, Cookie ๋ฐ Session์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
+- ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅ: ์์ฌ์ด ํตํฉ, MiniAuth๋ API, MVC, Razer Pages์ ํจ๊ป ์๋ํฉ๋๋ค.
+- ๋ฉํฐ ํ๋ซํผ: ๋ฆฌ๋
์ค, macOS ํ๊ฒฝ์ ์ง์ํฉ๋๋ค.
+- ๋ค์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์: Identity EF Core ํ์ค์ ๋ฐ๋ฅด๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํธํ๋ฉ๋๋ค.
+
+### ์ค์น
+
+ํจํค์ง๋ฅผ ์ค์นํ์ธ์ [NuGet](https://www.nuget.org/packages/MiniAuth):
+
+```
+dotnet add package MiniAuth
+// or
+NuGet\Install-Package MiniAuth
+```
+
+### ๋น ๋ฅธ ์
+
+ํ์ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํด๋ผ `services.AddMiniAuth()` Startup์, ๊ทธ๋ฆฌ๊ณ ๋์ ํ๋ก์ ํธ๋ฅผ ์คํํด ์:
+
+```csharp
+public class Program
+{
+ public static void Main(string[] args)
+ {
+ var builder = WebApplication.CreateBuilder(args);
+
+ builder.Services.AddMiniAuth();
+
+ var app = builder.Build();
+ app.Run();
+ }
+}
+```
+
+๊ธฐ๋ณธ ๊ด๋ฆฌ์ ๊ณ์ ์ `admin@mini-software.github.io` ์ด๋ฉฐ ๋น๋ฐ๋ฒํธ๋ `E7c4f679-f379-42bf-b547-684d456bc37f`(๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ remember)์
๋๋ค. ๊ด๋ฆฌ์ ํ์ด์ง๋ `http(s)://yourhost/miniauth/index.html`์์ ์ ์ํ ์ ์์ต๋๋ค.
+
+์ฐธ๊ณ : ์ด๋ฏธ ๋ณธ์ธ ์ธ์ฆ์ด ์๋ ๊ฒฝ์ฐ ์๋ ์ง์นจ์ ๋ฐ๋ฅด์๊ธฐ ๋ฐ๋๋๋ค.
+
+### ๊ธฐ์กด Identity Setup
+
+`Add MiniAuth`์ ๋ํด autoUse๋ฅผ ํด์ ํ๊ณ Use MiniAuth์์ ์ปจํ
์คํธ, ์ฌ์ฉ์ ๋ฐ ์ฌ์ฉ ๊ถํ ์ธ์ฆ์ผ๋ก ๊ต์ฒดํ์ฌ ์์ ์ ์ธ์ฆ ๋ค์ ๋ฐฐ์นํฉ๋๋ค. ์:
+```csharp
+public static void Main(string[] args)
+{
+ var builder = WebApplication.CreateBuilder(args);
+
+ var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
+ builder.Services.AddDbContext(options =>
+ options.UseSqlServer(connectionString));
+ builder.Services.AddDatabaseDeveloperPageExceptionFilter();
+
+ builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)
+ .AddRoles()
+ .AddEntityFrameworkStores();
+
+ builder.Services.AddControllersWithViews();
+
+ builder.Services.AddMiniAuth(autoUse: false); // <= โโโ
+
+ var app = builder.Build();
+
+ app.UseMiniAuth(); // <= โโโ
+ app.MapControllerRoute(
+ name: "default",
+ pattern: "{controller=Home}/{action=Index}/{id?}");
+ app.MapRazorPages();
+
+ app.Run();
+}
+```
+
+#### ์ฃผ๋ฌธ ์ฌํญ
+Use MiniAuth๋ฅผ ๋ผ์ฐํ
์์ฑ ํ์ ๋ฐฐ์นํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์คํ
์ด ๋ค์๊ณผ ๊ฐ์ ๊ถํ ๊ฒ์ฌ๋ฅผ ์ํ ๋ผ์ฐํ
๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค:
+
+```csharp
+app.UseRouting();
+app.UseMiniAuth();
+```
+
+#### ์ฐธ๊ณ : ์ญํ ๊ท์น ์ถ๊ฐ
+
+`AddRoles()`; ์ ์ถ๊ฐํด์ฃผ์ธ์ ๊ทธ๋ ์ง ์์ผ๋ฉด `[Authorize(Roles = "YourRole")]`๊ฐ ์๋ํ์ง ์์ต๋๋ค.
+```C#
+builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)
+ .AddRoles() // โโโ
+ .AddEntityFrameworkStores();
+```
+
+#### MiniAuth ๋ก๊ทธ์ธ ์ฌ์ฉ ์ ํจ
+์์ ๋ง์ ๋ก๊ทธ์ธ ๋ก์ง, ํ์ด์ง, API๋ง ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ๋ก๊ทธ์ธ ๊ฒฝ๋ก๋ฅผ ์ปค์คํฐ๋ง์ด์งํ๊ณ ์ค์์น๋ฅผ ๋ ์ ์์ต๋๋ค.
+```C#
+// before add service
+MiniAuthOptions.LoginPath = "/Identity/Account/Login";
+MiniAuthOptions.DisableMiniAuthLogin = true;
+```
+
+### ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ
+
+MiniAuth ์์คํ
์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๋ ์ค์ ์์ด SQLite๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ํ์ด ํ์ํ ๊ฒฝ์ฐ `app.Use MiniAuth`์์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์ ์ง์ ํฉ๋๋ค.
+
+### ๊ตฌ์ฑ ๋ฐ ์ต์
+
+#### ๊ธฐ๋ณธ ๋ชจ๋
+
+- MiniAuth๋ ๋ฑ๋ก ๋ฐ ์ํธ ์ฌ์ค์ ๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์์
์ IT ๊ด๋ฆฌ์๊ฐ ์ค์์์ ๊ด๋ฆฌํ๋ ๊ธฐ๋ณธ ๋ชจ๋๋ก ์๋ํ๋ฏ๋ก ์ด๋ฌํ ์์
์ ์ํํ๋ ค๋ฉด ๊ด๋ฆฌ์ ๊ถํ ๊ณ์ ์ด ํ์ํฉ๋๋ค. Default Role = miniauth-admin.
+
+#### ๋ก๊ทธ์ธ ๋ฐ ์ฌ์ฉ์ ์ ํจ์ฑ ๊ฒ์ฌ
+
+ApiController๊ฐ ์๋ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ์ login.html ํ์ด์ง(Headers["X-Requested-With"] == "XMLHtpRequest" ๋๋ ApiControllerAttribute๋ก ๋ฆฌ๋๋ ์
๋ฉ๋๋ค.
+ApiController๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ก๊ทธ์ธ ํ์ด์ง๋ก ๋ฆฌ๋๋ ์
ํ์ง ์๊ณ 401 ์ํ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค.
+
+### ๋ถ์ฐ ์์คํ
+
+- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ค๋ฅผ SQL Server, MySQL, PostgreSQL ๋ฑ์ผ๋ก ์ ํํด์ฃผ์ธ์.
+
+### ์ฌ์ฉ์ ์ ์ ํ๋ก ํธ์๋
+
+- ๊ด๋ฆฌ ๋ฐฑ์๋ ํ๋ก ํธ์๋๋ `/src/Frontend_Identity`์์ Vue3 + Vite๋ฅผ ์ฌ์ฉํ๋ฉฐ, `npm run build`๋ฅผ ์ฌ์ฉํ ํ miniauth UI๋ฅผ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค.
+- ๋ก๊ทธ์ธ ํ์ด์ง์ miniauth ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ฉด mvc์์ ID ์ค์บํด๋ Login.cshtml์ ์ฌ์ฉํ๊ฑฐ๋ miniauth ํ๋ก ํธ์๋์ login.html, js, css๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
+
+### ๋ฆด๋ฆฌ์ค ๋
ธํธ
+
+์
๋ฐ์ดํธ ๋ด์ฉ์ [Release Notes](releases)๋ฅผ ์ฐธ๊ณ ํ์ธ์.
+
+### TODO
+
+Link: [MiniAuth.Identify project](https://github.com/orgs/mini-software/projects/7/views/1)
\ No newline at end of file