Bind Reddit and Matrix session identities
This commit is contained in:
1 parent
34ae532cdd
commit
492efe0f8a
12 files changed
+234
-55
No files matched your search
+12
-12
@@ -37,7 +37,7 @@ import { RateLimiter } from './utils/rate-limiter.js';
|
||||
import { WebServer } from './web/server.js';
|
||||
import { reportReply } from './web/event-reporting.js';
|
||||
import { RedditSessionImporter } from './services/reddit-session-importer.js';
|
||||
import { AccountAuthContext } from './services/account-auth-context.js';
|
||||
import { AccountAuthContext, authenticateCurrentAccount } from './services/account-auth-context.js';
|
||||
import { ConfigStore } from './config/persistence.js';
|
||||
|
||||
export interface AppContainer {
|
||||
@@ -164,17 +164,17 @@ export async function bootstrap(
|
||||
};
|
||||
}
|
||||
let activeMatrixClient = new MatrixClient(matrixCreds, logger);
|
||||
accountAuth.setAuthenticator(async () => {
|
||||
const redditUsername = await browserClient.getAuthenticatedUsername();
|
||||
if (!redditUsername) return null;
|
||||
try {
|
||||
const matrixUserId = await activeMatrixClient.whoami();
|
||||
if (!matrixUserId) return null;
|
||||
return { accountId: matrixUserId, redditUsername, matrixUserId };
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
accountAuth.setAuthenticator(() => authenticateCurrentAccount({
|
||||
getRedditIdentity: () => browserClient.getAuthenticatedIdentity(),
|
||||
refreshMatrixCredentials: async () => {
|
||||
try {
|
||||
const userId = await activeMatrixClient.whoami();
|
||||
return userId ? { userId } : null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
}));
|
||||
const fullyAuthenticated = redditLoggedIn && await accountAuth.ensureFullyAuthenticated();
|
||||
if (fullyAuthenticated) logger.info('Reddit and Matrix authentication verified');
|
||||
broadcaster.dashboardEvents.redditSession({
|
||||
|
||||
Reference in new issue
Block a user