12

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

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

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

ответ

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 счетов. Если вы хотите получить учетную запись другого типа, вы можете проверить этот пост: Custom Authentication for Google Cloud Endpoints (instead of OAuth2)

0

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

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

Я надеюсь, что это вам поможет.

Смежные вопросы