Всем привет. Пытаюсь вручную без использования сторонних фреймворков сделать регистрацию на сайте через соц.сети (ASP.NET Core 2.0). Остановился на гитхабе. Вроде всё делал согласно примерам, но почему-то не получается. Итак, код в Startup.cs
services.AddOAuth("GitHub", options =>
{
options.ClientId = Configuration["Auth:GitHub:ClientId"];
options.ClientSecret = Configuration["Auth:GitHub:ClientSecret"];
//Account/githubLogin2
options.CallbackPath = new PathString(Configuration["Auth:GitHub:CallbackPath"]);
options.AuthorizationEndpoint = Configuration["Auth:GitHub:AuthorizationEndpoint"];
options.TokenEndpoint = Configuration["Auth:GitHub:TokenEndpoint"];
options.UserInformationEndpoint = Configuration["Auth:GitHub:UserInformationEndpoint"];
options.SaveTokens = true;
options.ClaimActions.Clear();
options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
options.ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
options.ClaimActions.MapJsonKey("urn:github:login", "login");
options.ClaimActions.MapJsonKey("urn:github:url", "html_url");
options.ClaimActions.MapJsonKey("urn:github:avatar", "avatar_url");
options.Events = new OAuthEvents
{
OnCreatingTicket = async context =>
{
var request = new HttpRequestMessage(HttpMethod.Get, context.Options.UserInformationEndpoint);
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", context.AccessToken);
var response = await context.Backchannel.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, context.HttpContext.RequestAborted);
response.EnsureSuccessStatusCode();
var user = JObject.Parse(await response.Content.ReadAsStringAsync());
context.RunClaimActions(user);
}
};
});
Весь код свыше полностью отрабатывает без ошибок (проверил отладчиком). Все токены совпадают. Но при попытке перейти на
http://localhost:56666/account/githubLogin2
после успешного входа на гитхаб во всплывающем окошке вижу это:
В чём ошибка?
P. S. Всё делал по этим туториалам:
1.
www.jerriepelser.com
2.
Пример с гитхаба