我正在尝试测试一个简单的表单以重置gmail
中的用户密码<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中执行put请求?
您无法完全尝试做的事情有很多原因。虽然https://developers.google.com/admin-sdk/directory/v1/reference/reference/users/update谈论使用目录API更新帐户,并且此API使用urls and https Connections,这主要用于Back-back--最终系统使用相当标准的基于REST的API而不是人员直接使用Web浏览器。
您也许可以逃脱基于JavaScript的Ajax调用来执行此操作,但这可能不是一个好主意。
对于初学者,将需要对用户进行身份验证,并且需要授权使用https://www.googleapis.com/auth/admin.directory.user
范围。由于具有此范围的令牌具有 lot 的电源(包括更改其他用户帐户的功能),因此这可能不是您想要给一个人的力量。如果是这样 - 他们将能够更改自己(或可能是任何人)的任何。
其次,作为使用此表格或Ajax完成的答复的一部分,您需要包括此auth令牌,而实际上,这实际上不是您只能以形式粘贴的东西。
相关的是,请求的主体必须采用JSON格式。据我所知,虽然有建议允许浏览器这样做,但目前没有浏览器支持一种编码类型的"应用程序/JSON"的表单。
您最好的选择是创建一个使用Google登录的简单应用程序服务器来验证用户,该服务器提供表单并进行检查以确保这是合理的请求。您可以在当时验证用户,让他们更改密码,但不能为他们提供其他任何内容。您将使用一个具有admin.directory.user
角色的服务帐户,根据用户的消毒输入进行实际更改。