Oid c Клиент Войти с помощью имени пользователя и пароля - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть форма входа, в которой есть поля с именем пользователя и паролем. Я хочу аутентифицировать имя пользователя и пароль с Oid c Client . Это метод, который использовался для входа по умолчанию:

     async signIn(state) {
            await this.ensureUserManagerInitialized();
            try {
                const silentUser = await this.userManager.signinSilent(this.createArguments());
                this.updateState(silentUser);
                return this.success(state);
            } catch (silentError) {
                // User might not be authenticated, fallback to popup authentication
                console.log("Silent authentication error: ", silentError);

                try {
                    if (this._popUpDisabled) {
                        throw new Error('Popup disabled. Change \'AuthorizeService.js:AuthorizeService._popupDisabled\' to false to enable it.')
                    }

                    const popUpUser = await this.userManager.signinPopup(this.createArguments());
                    this.updateState(popUpUser);
                    return this.success(state);
                } catch (popUpError) {
                    if (popUpError.message === "Popup window closed") {
                        // The user explicitly cancelled the login action by closing an opened popup.
                        return this.error("The user closed the window.");
                    } else if (!this._popUpDisabled) {
                        console.log("Popup authentication error: ", popUpError);
                    }

                    // PopUps might be blocked by the user, fallback to redirect
                    try {
                        await this.userManager.signinRedirect(this.createArguments(state));
                        return this.redirect();
                    } catch (redirectError) {
                        console.log("Redirect authentication error: ", redirectError);
                        return this.error(redirectError);
                    }
                }
            }
        }

Метод был вызван из Логин. js:

async login(returnUrl) {
        const state = {returnUrl };
        const result = await authService.signIn(state);
        switch (result.status) {
            case AuthenticationResultStatus.Redirect:
                break;
            case AuthenticationResultStatus.Success:
                await this.navigateToReturnUrl(returnUrl);
                break;
            case AuthenticationResultStatus.Fail:
                this.setState({ message: result.message });
                break;
            default:
                throw new Error(`Invalid status result ${result.status}.`);
        }
    }

Теперь у меня есть настраиваемая форма входа. У меня будет значение введенного пользователем имени пользователя и пароля, но я не знаю, как его аутентифицировать. Как это можно сделать?

...