我已將Google-Drive集成到我的網站中。我正在使用Google Drive Java API v2。我有一種情況,當用戶登錄到我的網站時,我需要檢查他對與該網站相關聯的Google雲端硬盤文件夾(比如Folder1)的權限,並根據我需要向他顯示內容的權限。我對這個用戶的所有信息是Google Drive FolderID, EmailAddress and access token
。我如何檢查用戶對give文件夾的權限?這是我的代碼。如何在Google Drive SDK中檢查文件夾對用戶的權限?
我試圖通過向Google發送ajax調用,然後訪問令牌/文件標識來顯示我的網站中的Google文件夾。如果用戶沒有權限,那麼它會發送404錯誤,指出文件未找到如下所示。但它應該給我一個「許可錯誤」。該文件存在。
function showLinkedGoogleFolder(fileId) {
$.ajax({
timeout: 10000, // Timeout (in ms) = 10sec
url: _getGoogleDriveUrl(fileId),
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
},
type: 'GET',
dataType: 'json',
success: function(data, textStatus, jqXHR) {
if (typeof(callback) === 'function') {
callback(data, textStatus, jqXHR);
}
},
error: function(data, textStatus, jqXHR) {
if (typeof(errorCallback) === 'function') {
errorCallback(data, textStatus, jqXHR);
}
},
complete: function(jqXHR, textStatus) {
if (typeof(completeCallback) === 'function') {
completeCallback(jqXHR, textStatus);
}
}
});
}
function _getGoogleDriveUrl(fileId) {
var host = "../"; // relative path to proxy
var proxyName = "proxy/google-drive-lti";
var result = host+proxyName+'/drive/v2/files/';
if ($.trim(fileId) !== '') {
result = result + fileId;
}
return result;
}
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found: 0BwwFUSF0YgJgUHo2Y0pBOW5lNmc"
}
],
"code": 404,
"message": "File not found: 0BwwFUSF0YgJgUHo2Y0pBOW5lNmc"
}
}
404是正確的。如果用戶沒有權限訪問文件,Google甚至不會泄露文件存在或不存在的事實。這是一個標準的安全過程。這有點像使用用戶名和密碼登錄網站。網站沒有說'用戶名正確,但密碼錯誤'。他們只是說'沒有匹配給定的用戶名和密碼'。 – pinoyyid