Summary#
- Adds
GET /xrpc/com.atproto.server.getSession— the first authenticated XRPC route - Accepts both legacy HS256 tokens (from
createSession) and ES256 OAuth access tokens via theAuthenticatedUserextractor; rejects refresh-scope tokens withInvalidToken - Returns
{ did, handle, email, emailConfirmed, didDoc }withdidDocomitted when no document is stored for the account - Adds
get_session_accountDB query (single JOIN over accounts + handles + did_documents) - Removes placeholder
#[allow(dead_code)]fromAuthenticatedUserandAuthScope
Test plan#
- 8 unit tests covering: valid token, confirmed email, DID doc present, missing auth, invalid token, expired token, refresh token rejected, deactivated account
-
app.rs501 test updated to userefreshSessionNSID - Manual:
createSession→ useaccessJwtagainstgetSessionvia Bruno (get_session.bru) - Manual: verify expired/tampered token returns 401 with correct error codes