Я работаю над интеграцией Google OAuth в свой API .NET для поддержки аутентификации как для веб -приложения, так и для мобильного приложения (например, построено из Flutter). Я немного застрял в том, как обрабатывать доставку токенов после OAuth, особенно при использовании перенаправления.
Вот текущий поток:
Клиент попадает в конечную точку/api. /> < /li>
После входа в систему Google перенаправляет обратно в /signin-google, а мой API получает куки Google. Токен.[HttpGet("google")]
[AllowAnonymous]
public async Task RedirectToGoogleProvider()
{
var redirectUrl = Url.Action(nameof(GoogleResponse), "OAuth", new
{
returnUrl = "https://google.com"
}, Request.Scheme);
var properties = new AuthenticationProperties { RedirectUri = redirectUrl };
return Challenge(properties, GoogleDefaults.AuthenticationScheme);
}
[HttpGet("signin-google")]
[AllowAnonymous]
public async Task GoogleResponse([FromQuery] string returnUrl, CancellationToken cancellationToken)
{
var authenticateResult = await HttpContext.AuthenticateAsync(GoogleDefaults.AuthenticationScheme);
if (!authenticateResult.Succeeded)
return BadRequest("Google authentication failed.");
var claims = authenticateResult.Principal.Identities.FirstOrDefault()?.Claims;
var email = claims?.FirstOrDefault(c => c.Type == ClaimTypes.Email)?.Value;
if (string.IsNullOrEmpty(email))
return BadRequest("Email not found");
var result = await _authenticationService.SignInWithProviderAsync("google", email, cancellationToken);
return result.Match(
success => Redirect("http://localhost:3000"), // Redirect to web app
BadRequest
);
}
< /code>
Мои вопросы: < /p>
Поскольку этот поток включает перенаправление, я не могу включить токены (доступ /обновление) в корпус ответа. Какова лучшая практика для надежного доставки токенов после OAuth в потоке на основе перенаправления? (Например, я должен использовать файлы cookie для веб-сайтов? Одноразовые коды?) Должен ли я перенаправить на пользовательскую схему URI и обменять код/токен?
Я работаю над интеграцией Google OAuth в свой API .NET для поддержки аутентификации как для веб -приложения, так и для мобильного приложения (например, построено из Flutter). Я немного застрял в том, как обрабатывать доставку токенов после OAuth, особенно при использовании перенаправления. Вот текущий поток: [list] [*] Клиент попадает в конечную точку/api. /> < /li> После входа в систему Google перенаправляет обратно в /signin-google, а мой API получает куки Google. Токен.[HttpGet("google")] [AllowAnonymous] public async Task RedirectToGoogleProvider() { var redirectUrl = Url.Action(nameof(GoogleResponse), "OAuth", new { returnUrl = "https://google.com" }, Request.Scheme);
var properties = new AuthenticationProperties { RedirectUri = redirectUrl }; return Challenge(properties, GoogleDefaults.AuthenticationScheme); }
[HttpGet("signin-google")] [AllowAnonymous] public async Task GoogleResponse([FromQuery] string returnUrl, CancellationToken cancellationToken) { var authenticateResult = await HttpContext.AuthenticateAsync(GoogleDefaults.AuthenticationScheme); if (!authenticateResult.Succeeded) return BadRequest("Google authentication failed.");
var claims = authenticateResult.Principal.Identities.FirstOrDefault()?.Claims; var email = claims?.FirstOrDefault(c => c.Type == ClaimTypes.Email)?.Value;
if (string.IsNullOrEmpty(email)) return BadRequest("Email not found");
var result = await _authenticationService.SignInWithProviderAsync("google", email, cancellationToken);
return result.Match( success => Redirect("http://localhost:3000"), // Redirect to web app BadRequest ); } < /code> Мои вопросы: < /p>
Поскольку этот поток включает перенаправление, я не могу включить токены (доступ /обновление) в корпус ответа. Какова лучшая практика для надежного доставки токенов после OAuth в потоке на основе перенаправления? (Например, я должен использовать файлы cookie для веб-сайтов? Одноразовые коды?) Должен ли я перенаправить на пользовательскую схему URI и обменять код/токен?
Моей подсказкой состояла в том, чтобы создать блог с 5 разделами, охватывающими 5 разных людей в нише отрасли.
Когда у меня был max_tokens = 300 (а затем 1000), он работал быстро, но результат не был полным. Я спросил Клода, что делать, и он...
My prompt was to create a blog with 5 sections covering 5 different individuals in an industry niche.
When I had max_tokens= 300 (and then 1000), it ran quickly, but the result was not complete.
When I tried max_tokens=1500 (or 3000), then the...
Я разработал приложение Streamlit, которое использует API Cohere для обработки естественного языка. Приложение позволяет пользователям задавать вопросы, которые затем обрабатываются с помощью Cohere API. Однако я столкнулся с проблемой, когда общее...
Мне нужно сравнить производительность трех разных компьютеров, на каждом из которых работает веб-сервер. Моя идея состоит в том, что если на каждом сервере будет обрабатываться один и тот же PHP-скрипт, тот, который сможет обслуживать наибольшее...