Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Dış kiracılar (daha fazla bilgi edinin)
Bu öğreticide, yerel kimlik doğrulamasının web geri dönüş adlı bir mekanizma kullanarak kimlik doğrulama akışını tamamlamak için yeterli olmadığı tarayıcı tabanlı bir kimlik doğrulaması aracılığıyla güvenlik belirteçlerinin nasıl alınacağı gösterilmektedir.
Web geri dönüşü, yerel kimlik doğrulaması kullanan bir istemci uygulamasının dayanıklılığı artırmak için tarayıcı tarafından temsilcili kimlik doğrulamasını geri dönüş mekanizması olarak kullanmasına olanak tanır. Bu senaryo, yerel kimlik doğrulaması kimlik doğrulama akışını tamamlamak için yeterli olmadığında gerçekleşir. Örneğin, yetkilendirme sunucusu istemcinin sağlayabildiği özellikler gerektiriyorsa. Web geri dönüşü hakkında daha fazla bilgi edinin.
Bu eğitimde, siz:
- Hatayı kontrol edin
isRedirectRequired. -
isRedirectRequiredhatasını gider.
Önkoşullar
Web geri dönüşünü denetleme ve işleme
JavaScript SDK'sının signIn() veya SignUp() yöntemini kullanırken karşılaşabileceğiniz hatalardan biri şudur: result.error?.isRedirectRequired(). Yardımcı program yöntemi isRedirectRequired(), tarayıcı tarafından devredilen kimlik doğrulamasına geri dönme gereksinimini denetler. Web geri dönüşünü desteklemek için aşağıdaki kod parçacığını kullanın:
const result = await authClient.signIn({
username,
});
if (result.isFailed()) {
if (result.error?.isRedirectRequired()) {
// Fallback to the delegated authentication flow.
const popUpRequest: PopupRequest = {
authority: customAuthConfig.auth.authority,
scopes: [],
redirectUri: customAuthConfig.auth.redirectUri || "",
prompt: "login", // Forces the user to enter their credentials on that request, negating single-sign on.
};
try {
await authClient.loginPopup(popUpRequest);
const accountResult = authClient.getCurrentAccount();
if (accountResult.isFailed()) {
setError(
accountResult.error?.errorData?.errorDescription ??
"An error occurred while getting the account from cache"
);
}
if (accountResult.isCompleted()) {
result.state = new SignInCompletedState();
result.data = accountResult.data;
}
} catch (error) {
if (error instanceof Error) {
setError(error.message);
} else {
setError("An unexpected error occurred while logging in with popup");
}
}
} else {
setError(`An error occurred: ${result.error?.errorData?.errorDescription}`);
}
}
Uygulama geri dönüş mekanizmasını kullandığında, loginPopup() yöntemini kullanarak güvenlik belirteçleri alır.
İlgili içerik
- Web geri dönüşü hakkında daha fazla bilgi edinin.
- Yerel kimlik doğrulaması sınama türleri hakkında daha fazla bilgi edinin.