Я работаю над упрощением процесса входа в систему для моего приложения. Превосходно использовал IdentityServer для входа в систему, но мне не нужен весь токен-сервер, поэтому я сейчас в процессе понижения, чтобы просто использовать Asp.Net Identity.
До того, как я смогу войти в систему через третьих лиц, выполните следующие действия:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public IActionResult ExternalLogin(string provider, string returnUrl = null)
{
// Request a redirect to the external login provider.
var redirectUrl = Url.Action(nameof(ExternalLoginCallback), "Account", new { returnUrl });
var properties = _signInManager.ConfigureExternalAuthenticationProperties(provider, redirectUrl);
return Challenge(properties, provider);
}
Это позволило мне войти в систему с третьими лицами, такими как (Coinbase), но я не понимаю, как это работает, потому что я не вижу места, где они получают код авторизации.
Я получил код авторизации от моего провайдера oauth, и теперь мне нужно получить токены доступа. Я легко могу сделать это вручную, например, запрос
POST /oauth/token HTTP/1.1
Host: authorization-server.com
grant_type=authorization_code
&code=xxxxxxxxxxx
&redirect_uri=https://example-app.com/redirect
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx
Но я чувствую, что в .net есть некоторые встроенные функции для выполнения этого запроса и сохранения токенов в диспетчере пользователей. Кто-нибудь знает встроенный способ сделать это?