[] 카카오 로그인 버튼 구현

This commit is contained in:
김선규 2025-05-29 17:51:54 +09:00
parent e207e246cd
commit a76e5fd574

View File

@ -1,3 +1,5 @@
using System.Net.Http.Json;
using System.Text.Json;
using Front.Program.Services;
using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
@ -7,23 +9,21 @@ namespace Front.Program.Views.Project;
public partial class Auth : ComponentBase
{
[Inject] NavigationManager NavigationManager { get; set; } = default!;
[Inject] IJSRuntime JS { get; set; } = default!;
[Inject] CookieService Cookie {get; set;} = default!;
// [Inject] IJSRuntime JS { get; set; } = default!;
// [Inject] CookieService Cookie { get; set; } = default!;
[Inject] HttpClient Http { get; set; } = default!;
public async Task KakaoLogin()
{
var headerKey = "Web_AM_Connect_Key";
// var headerValue = await JS.InvokeAsync<string>("eval", "document.cookie.match(/Web_AM_Connect_Key=([^;]+)/)?.[1] || ''");
var url = "/api/v1/out/user/kakao/auth";
var response = await Http.GetFromJsonAsync<JsonElement>(url);
var kakaoUrl = response.GetProperty("url").GetString();
// NavigationManager.NavigateTo("/api/v1/in/user/kakao/auth", true);
Cookie.GetCookieAsync(headerKey).ContinueWith(async task =>
Console.WriteLine(kakaoUrl);
if (!string.IsNullOrEmpty(kakaoUrl))
{
var cookie = task.Result;
if (!string.IsNullOrEmpty(cookie))
{
await JS.InvokeVoidAsync("postWithHeader", "/api/v1/in/user/kakao/auth", "GET", headerKey, cookie);
}
});
NavigationManager.NavigateTo(kakaoUrl, true); // 카카오 인증 페이지로 이동
}
}
}