BLAZOR .net6에서 카카오톡 로그인을 하고싶어요

안녕하세요. .net6에서 카카오톡 로그인을 하고싶습니다
도와주세요 ㅠㅠ 대부분 javascript이고 asp.net인데
저는 .net5나 .net6를 사용하고있어요 ㅠㅠ

감사합니다!!!

안녕하세요.

아래 예제를 참고해주세요.
https://devtalk.kakao.com/t/rest-api-c-asp-net-core/117166

1개의 좋아요

혹시 .net core 3.1 말고 .net5 예제는 없을까요…
개발중인 앱이 .net5으로 되어있습니다.

아쉽지만, 현재 net5로 준비된 예제는 없습니다.
검토해보도록 하겠습니다.
감사합니다.

음… 저도 blazor 잘 몰라서 궁금해서 해봤는데

인가코드 요청해서 → 코드받으시고 → 그코드로 토큰요청해서 → 토큰받으시고
토큰으로 원하시는 api 요청하실거 사용 하시면 되지 않을까 싶네요
다른 방법도 있겠죠 아마??

해당 코드는 MainLayout.razor ← 에 작성해 본 코드입니다

@inherits LayoutComponentBase
@inject Microsoft.AspNetCore.Components.NavigationManager navigationManager
@using Newtonsoft.Json;

<div class="page">
    <div class="sidebar">
        <NavMenu />
    </div>

    <div class="main">
        <div class="content px-4">
            <div>토큰:@(result_str)</div>
            <div style="cursor:pointer" @onclick="coderedirect_uri">kakaologin</div>

            @code {
                private string currentHeading = "";

                string redirect_uri = @"https://localhost:44376/Index";
                string result_str = string.Empty;


                protected override void OnInitialized()
                {

                    var uri = navigationManager.ToAbsoluteUri(navigationManager.Uri);

                    if (Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query).TryGetValue("code", out var param))
                    {
                        if (param.ToString() != "")
                            kakaologin(param.ToString());
                    }
                    if (Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query).TryGetValue("token", out var param2))
                    {
                        if (param2.ToString() != "")
                            this.result_str = param2.ToString();
                    }
                }


                public async void kakaologin(string code)
                {

                    string str_token = "https://kauth.kakao.com/oauth/token";
                    var values = new List<KeyValuePair<string, string>>();
                    values.Add(new KeyValuePair<string, string>("grant_type", "authorization_code"));
                    values.Add(new KeyValuePair<string, string>("client_id", "사용하시는 REST API 키"));
                    values.Add(new KeyValuePair<string, string>("redirect_uri", redirect_uri));
                    values.Add(new KeyValuePair<string, string>("code", code));
                    FormUrlEncodedContent content = new FormUrlEncodedContent(values);

                    HttpClient client = new HttpClient();

                    HttpResponseMessage result = await client.PostAsync(str_token, content);
                    result_str = result.Content.ReadAsStringAsync().Result;

                    if (result.StatusCode == System.Net.HttpStatusCode.OK)
                    {

                        dynamic result2 = JsonConvert.DeserializeObject(result_str);
                        navigationManager.NavigateTo("https://localhost:44376/Index?token=" + result2.access_token);
                    }
                }

                private async void coderedirect_uri()
                {
                    navigationManager.NavigateTo("https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=사용하시는 REST API 키&redirect_uri=" + redirect_uri);
                }
            }

            @Body
        </div>
    </div>
</div>

시간이 많이 지나긴 했지만 제가 하는 프로젝트가 도움이 될 것 같아요.
저는 nuget 에서 kakaotalk 받아서 쓰고 있거든요.
https://www.nuget.org/packages/AspNet.Security.OAuth.KakaoTalk/

저는 이렇게 했습니다. 그냥 엄청 간단하게 연결되더라구요.

1개의 좋아요