Подтвердить что ты не робот

Конечные точки Google Cloud с другим поставщиком oAuth2

Есть ли способ использовать другого поставщика OAuth2 с облачными конечными точками Google? Я имею в виду, например, получить аутентификацию от Facebook и использовать ее так же, как мы используем учетную запись Google Auth (используя javasi js и ставим класс User на @ApiMethod)

4b9b3361

Ответ 1

Нет. Я встретил кого-то другого, задающего этот вопрос, и ответ от людей google (если я правильно помню) заключался в том, что аутентификация пользователей конечных точек в настоящее время поддерживает только учетные записи Google.

Ответ 2

Вы должны реализовать свою конфигурацию Authenticator и обновить @Api. Основываясь на этом ответе, простой аутентификатор будет выглядеть следующим образом:

public class MyAuthenticator implements Authenticator {

    @Override
    public User authenticate(HttpServletRequest request) {
        String token = request.getHeader("Authorization");
        if (token != null) {
            // apply your Facebook/Twitter/OAuth2 authentication
            String user = authenticate(token);
            if (user != null) {
                return new User(user);
            }
        }
        return null;
    }
}

И ваше определение API

@Api(name = "example", authenticators = {MyAuthenticator.class})

Подробнее о пользовательских аутентификаторах вы найдете в документации Google.

Ответ 3

Я написал пример обмена токеном доступа Facebook для одного, сгенерированного моим приложением, и проверки его с помощью метода endpoints:

https://github.com/loudnate/appengine-endpoints-auth-example

Ответ 4

Облачные конечные точки Google позволяют восстанавливать User, HttpServletRequest и HttpServletContext в ваши API-методы, введя их как параметры.

Это не OAuth2, но вот начало решения: https://www.yanchware.com/custom-authentication-for-google-cloud-endpoints/

Предлагаемое решение заключается в том, чтобы ввести HttpServletRequest в определенные методы api для доступа к сеансу.