Auth0: при попытке обмена кода на токен возникает ошибка - PullRequest
0 голосов
/ 13 июля 2020

Мое приложение имеет встроенный Auth0 для аутентификации. Когда я захожу на домашнюю страницу, отображается страница входа в систему auth0. Я пытаюсь войти в систему в моем приложении, развернутом с помощью Google Cloud Run. Локально все работает найти, и я могу аутентифицировать пользователя с тем же clientId, clientSecret и доменом. Но когда я развертываю его в облаке Google, я получаю исключение во время аутентификации:

Произошла ошибка при обмене кода авторизации на токены Auth0.

Код ошибки это: a0.api_error . Я не понимаю, почему это происходит. Я проверил те же проблемы: com.auth0.IdentityVerificationException: произошла ошибка при обмене кода авторизации на токены Auth0 но в этих случаях причиной root был неправильный clientSecret, что не в моем случае - я зарегистрировал его, и он такой же, как и для local. Единственная разница в том, что мое приложение в облаке Google использует https: //, а localhost - http://. Не уверен, что это имеет значение. Вот код:

private void checkAuthentication(VaadinRequest request) {
    LOGGER.debug("checkAuthentication()");

    VaadinServletRequest servletRequest = (VaadinServletRequest)request;

    try {
        Tokens tokens = getAuthenticationController().handle(servletRequest.getHttpServletRequest());
        UserInfo userInfo = Auth0Util.resolveUser(tokens.getAccessToken());

        Auth0Session.getCurrent().setAuth0Info(tokens,
                                               userInfo);
        Page.getCurrent().open(Auth0Util.AUTH0_APP_ROOT_PATH,
                               null);

    } catch(IdentityVerificationException e) {
        LOGGER.debug(e.getMessage());
        switch (e.getCode()) {
            case "a0.missing_authorization_code":
            case "a0.invalid_state":
                String url = getAuthenticationController().buildAuthorizeUrl(servletRequest,
                                                                             Auth0Util.AUTH0_LOGIN_URL)
                                                          .withScope("openid profile email")
                                                          .build();
                Page.getCurrent().open(url,
                                       null);
                break;
            default:
                LOGGER.error("unhandled identity verification code: " + e.getCode());
                break;
        }
    } catch(Exception e) {
        LOGGER.error(e.getMessage());
    }
}

private AuthenticationController getAuthenticationController() {
        LOGGER.info("Auth0 domain: " + Auth0Util.AUTH0_DOMAIN);
        LOGGER.info("Auth0 client id: " + Auth0Util.AUTH0_CLIENT_ID);
        LOGGER.info("Auth0 secret: " + Auth0Util.AUTH0_CLIENT_SECRET);
        if(authenticationController == null) {
            authenticationController =
                    AuthenticationController.newBuilder(Auth0Util.AUTH0_DOMAIN,
                                                        Auth0Util.AUTH0_CLIENT_ID,
                                                        Auth0Util.AUTH0_CLIENT_SECRET)
                                            .build();
        }
        return authenticationController;
}

ОБНОВЛЕНИЕ:

Это журнал со стороны Auth0. Кажется, мне нужно найти, где установлен URI перенаправления.

URI перенаправления неверен. Вы отправили http://aniwareclinic....run.app, а мы ожидали https://aniwareclinic....run.app

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...