Mam na myśli implementację systemu logowania w aplikacji Electron [0], którą buduję, ale utknąłem z powodu obsługi sesji. Zasadniczo chcę przechowywać sesję użytkowników, aby była zachowywana między ponownymi uruchomieniami aplikacji (jeśli włączona jest opcja "Zapamiętaj mnie").Ciasteczka sesyjne nie działające w Electron
Muszę wykorzystać istniejący back-end, który działa z uwierzytelnianiem plików cookie i nie jestem w stanie niczego tam zmienić.
Z dokumentacji Electrona na obiekcie Session [1] ustaliłem, że powinienem używać takiej partycji jak f.e. persist:someName
, aby mieć trwałe miejsce do przechowywania, ale nie jest to zachowywane między ponownymi uruchomieniami aplikacji, jak się wydaje.
Sposób, w jaki aktualnie ustawiony plik cookie jest następujący:
// main-process/login.js
const session = require('electron').session;
const currentSession = session.fromPartition('persist:someName').cookies;
currentSession.set({
name: 'myCookie',
url: 'https://www.example.com',
value: 'loggedin=1',
expirationDate: 1531036000
}, function(error) {
console.log('Cookie set');
if (error) {
console.dir(error);
}
});
Po uruchomieniu to widzę wyjście Cookie set
, ale po ponownym uruchomieniu aplikacji i działa następujący kod:
// main.js
const session = require('electron').session;
const currentSession = session.fromPartition('persist:someName').cookies;
currentSession.get({}, function(error, cookies) {
console.dir(cookies);
if (error) {
console.dir(error);
}
});
Zwrócone dane wyjściowe to []
.
Wszelkie wskazówki dotyczące tego, co robię źle lub muszę robić inaczej, byłyby wysoko cenione!
[0] http://electron.atom.io
[1] http://electron.atom.io/docs/api/session/
Po przeanalizowaniu tego problemu, wydaje się, że może to być problem z wydaniami Electron po 1.2.2, jak wskazano w tym wątku na GitHub: https://github.com/electron/electron/issues/6388 – Revell
1 .: Sprawdź import, wyobrażam sobie, że "require ('electron')" może powodować pewne problemy 2 .: Zamiast tego możesz wypróbować interfejs API localStorage –
@JensHabegger Tak, to jest literówka w scenariuszu, przepraszam W międzyczasie okazało się, że jest to problem w firmie Electron i czekam na nowe wydanie z poprawką, która będzie dostępna. – Revell