Я был новичком в auth0 , когда пытался поэкспериментировать с auth0's parseHash .Меня удивило, что как-то эта функция возвращает ноль.Я попытался заглянуть внутрь исходного кода , похоже, эта функция пытается в конечном итоге что-то вернуть.
Вот часть кода, которая меня смутила:
import React from 'react';
import { Link } from '@reach/router';
import './Callback.sass';
export const Callback = ({ auth, navigate }) => {
let result = auth.parseHash((err, authResult) => {
if (err) {
return (
<div className="error">
<h1>{err.error}</h1>
<p>{err.errorDescription}</p>
<Link to="/">Home</Link>
</div>
);
} else {
console.log({ authResult });
return 'profile';
// localStorage.setItem('authResult', JSON.stringify(authResult));
// navigate('/profile');
}
});
console.log({ result });
if (result) return result;
return <React.Fragment />;
};
Вот результат:
Что, на мой взгляд, действительно сбивает с толку.Консоль регистрирует часть 'authResult', но result
- это undefined
.(Я даже тестировал с async await, все еще не могу получить то, что ожидаю).
В настоящее время я просто обертываю результат, чтобы обойти это.
Это ошибка?Или я не правильно использую этот метод?