persist oauth session status to stored account
This commit is contained in:
@@ -29,6 +29,7 @@ const accountSchema = z.object({
|
||||
status: z.string().optional(),
|
||||
pdsUrl: z.string().optional(),
|
||||
isSelfHosted: z.boolean().optional(),
|
||||
isOauthSession: z.boolean().optional(),
|
||||
})
|
||||
export type PersistedAccount = z.infer<typeof accountSchema>
|
||||
|
||||
|
||||
@@ -287,6 +287,7 @@ class BskyAppAgent extends BskyAgent {
|
||||
|
||||
// Now the agent is ready.
|
||||
const account = agentToSessionAccountOrThrow(this)
|
||||
account.isOauthSession = false
|
||||
let lastSession = this.sessionManager.session
|
||||
this.persistSessionHandler = event => {
|
||||
if (this.sessionManager.session) {
|
||||
|
||||
@@ -190,7 +190,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
account: SessionAccount
|
||||
}
|
||||
|
||||
if (shouldUseOauth) {
|
||||
if (storedAccount.isOauthSession || shouldUseOauth) {
|
||||
agentAccount = await oauthResumeSession(storedAccount)
|
||||
} else {
|
||||
agentAccount = await createAgentAndResume(
|
||||
@@ -259,7 +259,12 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
a => a.did === synced.currentAccount?.did,
|
||||
)
|
||||
// TODO: this should be checking if it is an oauth session
|
||||
if (syncedAccount && (shouldUseOauth || syncedAccount?.refreshJwt)) {
|
||||
if (
|
||||
syncedAccount &&
|
||||
(syncedAccount.isOauthSession ||
|
||||
shouldUseOauth ||
|
||||
syncedAccount?.refreshJwt)
|
||||
) {
|
||||
if (syncedAccount.did !== state.currentAgentState.did) {
|
||||
resumeSession(syncedAccount)
|
||||
} else {
|
||||
|
||||
@@ -79,6 +79,7 @@ export class OauthBskyAppAgent extends Agent {
|
||||
this,
|
||||
this.#oauthSession,
|
||||
)
|
||||
account.isOauthSession = true
|
||||
this.#account = account
|
||||
this.session = sessionAccountToSession(account)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user