Ensure chat key fetches bypass cache
Added `{ cache: 'no-store' }` to fetch requests for chat keys in both the chat page and useSodiumChat hook to prevent stale key data. Also updated the chat key query to order by `lastSeenAt` descending, ensuring the most recent bundle is retrieved.
This commit is contained in:
@@ -21,6 +21,7 @@ export async function GET(request: NextRequest) {
|
|||||||
|
|
||||||
const bundle = await db.query.chatDeviceBundles.findFirst({
|
const bundle = await db.query.chatDeviceBundles.findFirst({
|
||||||
where: eq(chatDeviceBundles.did, did),
|
where: eq(chatDeviceBundles.did, did),
|
||||||
|
orderBy: (bundles, { desc }) => [desc(bundles.lastSeenAt)],
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log('[Chat Keys GET] Found local bundle:', bundle ? 'YES' : 'NO');
|
console.log('[Chat Keys GET] Found local bundle:', bundle ? 'YES' : 'NO');
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ export default function ChatPage() {
|
|||||||
if (msg.isSentByMe && envelope.recipientDid) {
|
if (msg.isSentByMe && envelope.recipientDid) {
|
||||||
// I'm the sender, so I need the recipient's public key to decrypt my own message
|
// I'm the sender, so I need the recipient's public key to decrypt my own message
|
||||||
try {
|
try {
|
||||||
const keyRes = await fetch(`/api/chat/keys?did=${encodeURIComponent(envelope.recipientDid)}`);
|
const keyRes = await fetch(`/api/chat/keys?did=${encodeURIComponent(envelope.recipientDid)}`, { cache: 'no-store' });
|
||||||
if (keyRes.ok) {
|
if (keyRes.ok) {
|
||||||
const keyData = await keyRes.json();
|
const keyData = await keyRes.json();
|
||||||
otherPartyPublicKey = keyData.publicKey;
|
otherPartyPublicKey = keyData.publicKey;
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export function useSodiumChat() {
|
|||||||
if (!user.did) {
|
if (!user.did) {
|
||||||
throw new Error('User DID not available');
|
throw new Error('User DID not available');
|
||||||
}
|
}
|
||||||
const checkResponse = await fetch(`/api/chat/keys?did=${encodeURIComponent(user.did)}`);
|
const checkResponse = await fetch(`/api/chat/keys?did=${encodeURIComponent(user.did)}`, { cache: 'no-store' });
|
||||||
|
|
||||||
let shouldPublish = false;
|
let shouldPublish = false;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user