2015-05-06 2 views
0

Я пытаюсь проверить простую форму, чтобы сбросить пароль пользователя в GmailTest Google API с запросом HTML PUT

<form action="https://www.googleapis.com/admin/directory/v1/users"” method=”put” if-match="*"> 
    <input name="userKey" type="text" value="" /> 
    <input name="password" type="text" value="" /> 
    <input name="key" type="text" value="" /> 
    <input type="submit" /> 
</form> 

У меня есть эта ошибка

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "required", 
    "message": "Login Required", 
    "locationType": "header", 
    "location": "Authorization" 
    } 
    ], 
    "code": 401, 
    "message": "Login Required" 
} 
} 

Как я могу сделать запрос на пут в html?

+0

вы, вероятно, не можете, потому что вам нужно будет пройти аутентификацию сначала, для этого потребуется какой-то язык программирования, а не html. – DaImTo

ответ

1

Существует множество причин, по которым вы не можете делать то, что вы пытаетесь сделать. Хотя https://developers.google.com/admin-sdk/directory/v1/reference/users/update рассказывает об обновлении учетной записи с использованием API-интерфейса Directory, и этот API использует URL-адреса и HTTPS-соединения, это в основном предназначено для использования в системах с использованием стандартного REST-интерфейса вместо того, чтобы люди могли напрямую использовать веб-браузер.

Возможно, вам удастся выполнить вызов AJAX на основе JavaScript, но даже это, вероятно, не очень хорошая идея.

Для начала пользователю необходимо пройти аутентификацию, и им необходимо авторизоваться для использования области https://www.googleapis.com/auth/admin.directory.user. Поскольку токены с этой областью имеют лот мощности (в том числе мощность для изменения других учетных записей пользователей), это, вероятно, не будет силой, которую вы хотите дать человеку. Если бы это было - они могли бы изменить любые поля (или, возможно, всех).

Во-вторых, как часть ответа, выполненного с использованием этой формы или AJAX, вам нужно будет включить этот токен аутентификации, и это действительно не то, что вы можете просто вставить в форму.

Соответственно, тело запроса должно быть в формате JSON. Хотя есть предложения, позволяющие браузерам делать это, насколько мне известно, ни один браузер в настоящее время не поддерживает тип кодировки формы «application/json».

Лучше всего создать простой сервер приложений, защищенный с помощью входа Google для аутентификации пользователя, который предоставляет форму и проверяет ее, чтобы убедиться, что это разумный запрос. Вы можете проверить пользователя в это время и позволить им изменять пароль, но не предоставлять им доступ ко всему остальному. Вы использовали бы учетную запись службы, которая имела бы роль admin.directory.user, чтобы сделать фактическое изменение на основе дезинфицированных входов от пользователя.

+0

Моя цель - создать портал самообслуживания, если вызов AJAX не является хорошей идеей, кто мог бы это сделать? –

+1

Как отмечено в последнем абзаце - создание сервера приложений (портала), который аутентифицирует пользователя, а затем выполняет работу от их имени с использованием учетной записи службы. – Prisoner

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