Я аутентифицирую пользователей с помощью Google / Facebook / MS Oauth, а затем я даю им маркер обновления.Затем я использую этот долгоживущий токен обновления для отправки запросов на кратковременные токены доступа.
Проблема, с которой я сталкиваюсь, заключается в том, что мое приложение использует фотографию социального профиля для отображения на веб-интерфейсе, но URL-адрес перестает работатьпосле истечения срока действия социального токена.
Я пытаюсь сохранить фотографию профиля пользователя в MSSQL DB как varbinary (max), а затем отправить ее обратно клиенту с токенами доступа.
Вот мой код до сих пор:
Но я не уверен, как получить двоичный файл из буфера вместо строки base64?
request.get(
{ url: req.user._json.picture, encoding: null },
function(err, res, buffer) {
res.on('close', () => {
theRes.send(buffer.toString('base64'));
return buffer.toString('base64');
knex('USERS')
.update({ photo: photo })
.where({ id: req.user.dbUserID })
.then(() => {
console.log('PHOTO UPDATED');
console.log(res);
console.log(photo);
})
.catch(err => {
console.log('ERROR ADDING PHOTO TO DATABASE');
console.log(err);
});
});
});
}
);
РЕДАКТИРОВАТЬ: Это не то же самое, что возвращать ответ от асинхронного вызова, я знаю, как это сделать, и я уже делаю это в примере кода, с какой стати вы бы отметили это как дубликат этого ???