Files
CloudFlare-ImgBed/functions/api/sessionCheck.js
T
MarSeventh 5e48fde2ca feat: session-based auth with password hashing
- Add passwordHash.js: SHA-256 + salt hashing with plaintext backward compatibility
- Add sessionManager.js: HttpOnly cookie sessions with separate admin_session/user_session
- Add sessionCheck.js: session validation endpoint for frontend route guards
- Add logout.js: session destruction endpoint with authType support
- Update login.js: return user_session cookie on successful login
- Update check.js: return admin_session cookie on successful admin auth
- Update _middleware.js: check admin_session before Basic Auth, remove WWW-Authenticate header
- Update security.js: hash passwords on save, mask in GET, clear sessions on password change
- Update dualAuth.js/userAuth.js: use verifyPassword and session validation
2026-04-17 23:11:45 +08:00

27 lines
774 B
JavaScript

import { validateAnySession } from "../utils/sessionManager.js";
/**
* 会话检查接口
* 用于前端路由守卫检查当前会话是否有效
* 同时检查 admin_session 和 user_session
*/
export async function onRequestGet(context) {
const { request, env } = context;
const sessionResult = await validateAnySession(env, request);
if (sessionResult.valid) {
return new Response(JSON.stringify({
valid: true,
authType: sessionResult.session.authType,
}), {
status: 200,
headers: { 'Content-Type': 'application/json' },
});
}
return new Response(JSON.stringify({ valid: false }), {
status: 401,
headers: { 'Content-Type': 'application/json' },
});
}