(READ ONLY) Margin is an open annotation layer for the internet. Powered by the AT Protocol. margin.at
extension web atproto comments
99
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix refresh session token hard coded to look for a browser cookie

scanash00 12ebb325 29918f1d

+7 -4
+1
backend/internal/api/apikey.go
··· 328 328 } 329 329 330 330 return &SessionData{ 331 + ID: sessionID, 331 332 DID: sessDID, 332 333 Handle: handle, 333 334 AccessToken: accessToken,
+6 -4
backend/internal/api/token_refresh.go
··· 52 52 } 53 53 54 54 type SessionData struct { 55 + ID string 55 56 DID string 56 57 Handle string 57 58 AccessToken string ··· 94 95 } 95 96 96 97 return &SessionData{ 98 + ID: sessionID, 97 99 DID: did, 98 100 Handle: handle, 99 101 AccessToken: accessToken, ··· 104 106 } 105 107 106 108 func (tr *TokenRefresher) RefreshSessionToken(r *http.Request, session *SessionData) (*SessionData, error) { 107 - cookie, err := r.Cookie("margin_session") 108 - if err != nil { 109 - return nil, fmt.Errorf("not authenticated") 109 + if session.ID == "" { 110 + return nil, fmt.Errorf("invalid session ID") 110 111 } 111 112 112 113 oauthClient := tr.getOAuthClient(r) ··· 138 139 139 140 expiresAt := time.Now().Add(7 * 24 * time.Hour) 140 141 if err := tr.db.SaveSession( 141 - cookie.Value, 142 + session.ID, 142 143 session.DID, 143 144 session.Handle, 144 145 tokenResp.AccessToken, ··· 152 153 log.Printf("Successfully refreshed token for user %s", session.Handle) 153 154 154 155 return &SessionData{ 156 + ID: session.ID, 155 157 DID: session.DID, 156 158 Handle: session.Handle, 157 159 AccessToken: tokenResp.AccessToken,