This commit is contained in:
@@ -15,7 +15,7 @@ export const Generator: React.FC<GeneratorProps> = ({ url, setUrl, onGenerate })
|
||||
KittyURL <PawPrint className="w-8 h-8 sm:w-12 sm:h-12" fill="currentColor" />
|
||||
</h1>
|
||||
<p className="text-pink-300 text-lg sm:text-xl font-medium px-4">
|
||||
Shorten your links with a purr!
|
||||
Shorten KKKKKK your links with a purr!
|
||||
</p>
|
||||
</header>
|
||||
|
||||
|
||||
@@ -7,11 +7,25 @@ const TOKEN_KEY = 'ktty_shared_token';
|
||||
|
||||
const getCookieConfig = () => {
|
||||
const hostname = window.location.hostname;
|
||||
|
||||
// Sprawdzamy, czy jesteśmy na localhost
|
||||
const isLocal = hostname === 'localhost' || hostname === '127.0.0.1';
|
||||
|
||||
// Sprawdzamy, czy połączenie jest bezpieczne (HTTPS)
|
||||
const isSecure = window.location.protocol === 'https:';
|
||||
|
||||
return {
|
||||
// Na produkcji używamy domeny nadrzędnej z kropką, by działało na subdomenach
|
||||
// Na localhost MUSI być undefined, inaczej przeglądarka odrzuci ciasteczko
|
||||
domain: isLocal ? undefined : '.ktty.is',
|
||||
secure: !isLocal,
|
||||
|
||||
// Atrybut Secure wymaga HTTPS. Na localhost wyłączamy, na produkcji włączamy.
|
||||
secure: isSecure,
|
||||
|
||||
// 'Lax' jest bezpieczne i pozwala na współdzielenie w obrębie subdomen.
|
||||
// Jeśli API jest na zupełnie innej domenie, rozważ 'None' (wymaga Secure: true).
|
||||
sameSite: 'Lax' as const,
|
||||
|
||||
path: '/',
|
||||
expires: 7
|
||||
};
|
||||
@@ -56,7 +70,9 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||
}, []);
|
||||
|
||||
const logout = useCallback(() => {
|
||||
Cookies.remove(TOKEN_KEY, { domain: getCookieConfig().domain, path: '/' });
|
||||
const config = getCookieConfig();
|
||||
// When removing, you must match the domain and path used when setting
|
||||
Cookies.remove(TOKEN_KEY, { domain: config.domain, path: config.path });
|
||||
setToken(null);
|
||||
}, []);
|
||||
|
||||
@@ -65,9 +81,9 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||
isAuthenticated: !!token,
|
||||
token,
|
||||
loading,
|
||||
error, // TERAZ OBECNE
|
||||
error,
|
||||
signIn: (n, p) => authRequest('signIn', n, p),
|
||||
signUp: (n, p) => authRequest('signUp', n, p), // TERAZ OBECNE
|
||||
signUp: (n, p) => authRequest('signUp', n, p),
|
||||
logout
|
||||
}}>
|
||||
{children}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
{
|
||||
"compilerOptions": {
|
||||
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
||||
"target": "ES2022",
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
{
|
||||
"files": [],
|
||||
"references": [
|
||||
{ "path": "./tsconfig.app.json" },
|
||||
{ "path": "./tsconfig.node.json" }
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user