У меня есть Google-Drive, интегрированный в мой сайт. Я использую Google Drive Java API v2. У меня есть ситуация, когда пользователь регистрируется на моем веб-сайте, мне нужно проверить его разрешения для папки Google Диска (скажем, Folder1), которая связана с сайтом, и на основе разрешения мне нужно показать ему контент. Вся информация, которую я имею в отношении этого пользователя, - Google Drive FolderID, EmailAddress and access token
. Как проверить права пользователей на папку «Отправка» или нет? Вот мой код.Как проверить разрешение папки на пользователя в SDK Google Диске?
Я пытаюсь показать папки Google на своем сайте, сделав ajax-вызов для Google, предоставив ему токен доступа/FileID. Если у пользователя нет разрешений, он отправляет 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