Attempt to fix session restoration issues
This commit is contained in:
@@ -130,14 +130,14 @@ impl MatrixClient {
|
||||
};
|
||||
|
||||
// Check metadata
|
||||
let oauth = client.client.oauth();
|
||||
let server_metadata = oauth
|
||||
.server_metadata()
|
||||
.await
|
||||
.map_err(MatrixClientError::FetchServerMetadata)?;
|
||||
log::info!("OAuth2 server issuer: {:?}", server_metadata.issuer);
|
||||
|
||||
if is_restoring {
|
||||
if !is_restoring {
|
||||
let oauth = client.client.oauth();
|
||||
let server_metadata = oauth
|
||||
.server_metadata()
|
||||
.await
|
||||
.map_err(MatrixClientError::FetchServerMetadata)?;
|
||||
log::info!("OAuth2 server issuer: {:?}", server_metadata.issuer);
|
||||
} else {
|
||||
let session: StoredSession = serde_json::from_str(
|
||||
std::fs::read_to_string(session_file_path)
|
||||
.map_err(MatrixClientError::LoadStoredSession)?
|
||||
@@ -292,20 +292,15 @@ impl MatrixClient {
|
||||
async fn save_stored_session(&self) -> anyhow::Result<()> {
|
||||
log::debug!("Save the stored session for {:?}...", self.email);
|
||||
|
||||
let user_session: UserSession = self
|
||||
let full_session = self
|
||||
.client
|
||||
.oauth()
|
||||
.user_session()
|
||||
.full_session()
|
||||
.context("A logged in client must have a session")?;
|
||||
|
||||
let stored_session = StoredSession {
|
||||
user_session,
|
||||
client_id: self
|
||||
.client
|
||||
.oauth()
|
||||
.client_id()
|
||||
.context("Client ID should be set at this point!")?
|
||||
.clone(),
|
||||
user_session: full_session.user,
|
||||
client_id: full_session.client_id,
|
||||
};
|
||||
|
||||
let serialized_session = serde_json::to_string(&stored_session)?;
|
||||
|
||||
Reference in New Issue
Block a user