안녕하세요. .net6에서 카카오톡 로그인을 하고싶습니다
도와주세요 ㅠㅠ 대부분 javascript이고 asp.net인데
저는 .net5나 .net6를 사용하고있어요 ㅠㅠ
감사합니다!!!
안녕하세요. .net6에서 카카오톡 로그인을 하고싶습니다
도와주세요 ㅠㅠ 대부분 javascript이고 asp.net인데
저는 .net5나 .net6를 사용하고있어요 ㅠㅠ
감사합니다!!!
혹시 .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/
저는 이렇게 했습니다. 그냥 엄청 간단하게 연결되더라구요.