2015-05-06 88 views
0

我想測試一個簡單的形式在Gmail重置密碼的用戶測試谷歌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" 
} 
} 

我怎樣才能做一個PUT請求在HTML?

+0

你可能不能,因爲你需要先認證,這將需要某種編程語言而不是HTML。 – DaImTo

回答

1

有很多原因,你爲什麼不能完全做你想做的事情。雖然https://developers.google.com/admin-sdk/directory/v1/reference/users/update談到了使用Directory API更新帳戶,並且此API使用URL和HTTPS連接,但這主要是爲了使後端系統使用相當標準的基於REST的API,而不是人們直接使用Web瀏覽器。

您可以通過基於JavaScript的AJAX調用來完成此操作,但即使這樣做也不是一個好主意。

對於初學者,用戶需要進行身份驗證,他們需要被授權使用https://www.googleapis.com/auth/admin.directory.user範圍。由於這個範圍內的令牌有很多的權力(包括權力改變其他用戶帳戶),這可能不會是你想給一個人的權力。如果是 - 他們可以更改任何自己(或可能是任何人)的領域。

其次,作爲使用此表單或AJAX進行回覆的一部分,您需要包含此驗證令牌,並且它確實不是您可以只粘在表單中的東西。

相關地,請求的主體需要採用JSON格式。雖然有建議允許瀏覽器這樣做,據我所知,目前沒有瀏覽器支持「application/json」的表單編碼類型。

最好的辦法是創建一個簡單的應用程序服務器,使用Google的登錄進行保護以驗證用戶,該用戶提供表單並檢查它以確保這是合理的請求。您可以在此時驗證用戶,並讓他們更改密碼,但不能讓他們訪問其他任何內容。您將使用一個服務帳戶(該帳戶具有admin.directory.user角色)根據來自用戶的已清理輸入來執行實際更改。

+0

我的目標是創建一個自助服務門戶,如果一個AJAX調用不是一個好主意,我可以這樣做嗎? –

+1

如最後一段所述 - 創建一個應用程序服務器(門戶),用於驗證用戶,然後使用服務帳戶代表他們完成工作。 – Prisoner