Сессия VK Редактировано: 28.08.2020 в 04:45
После авторизации пользователя или группы, Easy VK создает для Вас сессию, в которую передает некоторые параметры. Так, например, при авторизации пользователя стандартный вид сессии выглядит таким образом:
Класс: easyvk.class.EasyVKSession
Пользовательская сессия после авторизации
EasyVKSession {
access_token: ...,
first_name: ..., // Имя
last_name: ..., // Фамилия
user_id: ...,
username: ... // Логин для входа в аккаунт (только для корректной авто-смены сессий)
}
Вы можете использовать эти параметры после авторизации
easyvk({
access_token: "токен_пользователя"
}).then(vk => {
console.log(vk.session.user_id);
})
Для группы же, будет выглядеть так:
Сессия группы после авторизации
EasyVKSession {
access_token: ...,
group_name: ..., // Название группы
screen_name: ..., // URL имя группы
group_id: ...
}
Как видно, объект сессии для группы и для пользователя один и тот же, но его содержимое в первозданном виде - различное. Это важно понимать.
При авторизации Вы можете указать дополнительные параметры, которые хотите сохранить в сессию после авторизации. Так, например, можно сохранить ссылку на аватарку photo_200
пользователя, чтобы дальше использовать ее в своей программе без дополнительных обращений к API ВКонтакте. Для того, чтобы это сделать, воспользуйтесь параметром fields[]
Ниже описаны методы объекта EasyVKSession
session.save()
Метод сохраняет сессию в указанный файл.
vk.save().then(() => {
console.log('Сессия сохранена успешно!');
})
session.setPath()
Метод устанавливает путь к файлу сессии, тут происходит указание файла.
Я не рекомендую менять свойство path
для установки пути к файлу, так как Вы можете упустить некоторые внутренние моменты синхронизации Easy VK.
const path = require('path')
const sessionPath = path.join(__dirname, '.current-session')
vk.session.setPath(sessionPath)
.then(({vk: EasyVK}) => {
console.log(EasyVK.session.path) // Путь к файлу сессии
})
session.clear()
Метод отчищает сессию и сохраняет ее в файл
vk.session.data = []
vk.session.clear(() => {
console.log(vk.session) // {data: undefined}
})
Метод использования
Вы можете использовать сессию не только для того, чтобы сохранять данные пользователя на время, но и, чтобы меняться этими данными между программами. Поскольку я использую Easy VK всегда, когда пишу приложения API ВКонтакте под Node.js, я сталкивался с ситуациями, когда сессию надо было менять в одной программе сразу несколько раз, таким образом я сохранял работоспособность одной программы, не перезапуская постоянно алгоритм авторизации. Кроме того, в Easy VK изначально сессия предназначена для того, чтобы не авторизовать по логину и паролю много раз, а сделать это единожды.