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

Облачные конечные точки Google без учетных записей Google

В нашем веб-приложении не предусмотрена проверка подлинности учетных записей Google. Мы выполнили собственную аутентификацию с использованием аутентификации WebApp2: http://webapp-improved.appspot.com/tutorials/auth.html.

Мы хотели бы использовать Cloud Endpoints в качестве API для мобильных приложений/сторонних разработчиков, но мы все равно хотели бы использовать oAuth2 для аутентификации.

Каковы шаги, необходимые для реализации этого? Нужно ли нам настраивать собственный сервер OAuth на AppEngine и совместимы ли клиентские библиотеки Google?

4b9b3361

Ответ 1

Вам не нужно ничего делать. У меня есть федеративное приложение входа в приложение, где я недавно добавил приложение для Android, которое использует Cloud Endpoints. Вам не нужно ничего особенного, просто поместите параметр User в вашу функцию. В объекте User вы найдете адрес электронной почты пользователя, который вы должны авторизовать, чтобы получить доступ к данным.

@Api(name = "my_api",
        version = "v1",
        scopes = {"https://www.googleapis.com/auth/userinfo.email"},
        clientIds = {Constants.AUTH_CLIENT,
                Constants.AUTH_CLIENT_APIEXPLORER})
public class MyEndpoint {
    @ApiMethod(name = "fistEndpoint")
    public ResponseObject fistEndpoint(User user) throws OAuthRequestException {
        if (user == null) {
            throw new OAuthRequestException("Access denied!");
        }
        String email = user.getEmail();
        //Authorize the request here
        //make the ResponseObject and return it
    }
}

После создания посещения конечной точки: https://your-app.appspot.com/_ah/api/explorer и протестировать его

ОБНОВЛЕНО: Приведенный выше пример ограничен аккаунтами Google. Если вы хотите создать учетную запись другого типа, вы можете проверить этот пост: Пользовательская аутентификация для конечных точек Google Cloud (вместо OAuth2)

Ответ 2

Конечные точки Google Cloud не имеют статуса, поэтому, если вы не используете аутентификацию Google, вы не можете получить электронную почту пользователя в конечную точку.

Фактически, конечные точки - это просто HTTP-запрос, поэтому вы можете передать информацию о том, как вы авторизуетесь в качестве авторизации http. У вас есть полный доступ к этой информации о конечных точках.

Надеюсь, это поможет вам.