Jostka
This commit is contained in:
@@ -5,22 +5,20 @@ import {useEffect, useState} from "react";
|
||||
|
||||
export default function Home() {
|
||||
const { user, error, isLoading } = useUser();
|
||||
const [accessToken, setAccessToken] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
const fetchAccessToken = async () => {
|
||||
if (user) {
|
||||
try {
|
||||
const response = await fetch('/auth/access-token');
|
||||
const v = await fetch('/token');
|
||||
if (response.ok) {
|
||||
const tokenData = await response.text();
|
||||
setAccessToken(tokenData);
|
||||
} else {
|
||||
setAccessToken('Token not available');
|
||||
}
|
||||
} catch (error) {
|
||||
setAccessToken('Error fetching token');
|
||||
console.error("Error fetching token");
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
const resp = await fetch('/untoken');
|
||||
} catch (e) {
|
||||
console.error('Error in /api/untoken:', e);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -28,10 +26,6 @@ export default function Home() {
|
||||
fetchAccessToken().then(r => console.log(r));
|
||||
}, [user]);
|
||||
|
||||
async function checkValidity() {
|
||||
const check = await fetch('https://impr.ink/api/api/User', {method: 'POST'});
|
||||
}
|
||||
|
||||
if (isLoading) {
|
||||
return (
|
||||
<div className="min-h-screen bg-gradient-to-br from-purple-900 via-blue-900 to-indigo-900 flex items-center justify-center">
|
||||
@@ -147,15 +141,6 @@ export default function Home() {
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<div>
|
||||
<label
|
||||
className="text-purple-300 text-xs font-semibold uppercase tracking-wider">Access
|
||||
Token</label>
|
||||
<div
|
||||
className="text-white/80 text-xs mt-1 p-2 bg-black/30 rounded-lg border border-white/10 font-mono break-all max-h-24 overflow-auto">
|
||||
{accessToken}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
@@ -1,34 +1,30 @@
|
||||
import { cookies } from 'next/headers';
|
||||
import {cookies, headers} from 'next/headers';
|
||||
import { NextResponse } from 'next/server';
|
||||
import {auth0} from "@/lib/auth0";
|
||||
import api from "@/lib/api";
|
||||
|
||||
export async function GET() {
|
||||
try {
|
||||
const session = await auth0.getSession();
|
||||
const accessToken = session.tokenSet.accessToken;
|
||||
if (!accessToken) {
|
||||
return NextResponse.json({ error: 'No access token found' }, { status: 401 });
|
||||
}
|
||||
const token = (await auth0.getSession()).tokenSet.accessToken;
|
||||
|
||||
const response = NextResponse.json({ message: 'Access token set in cookie' });
|
||||
if (!token) { return NextResponse.json({ error: 'No access token found' }, { status: 401 }); }
|
||||
|
||||
const cookieDomain = process.env.COOKIE_DOMAIN || undefined;
|
||||
|
||||
const cookieStore = await cookies();
|
||||
cookieStore.set({
|
||||
name: 'access_token',
|
||||
value: accessToken,
|
||||
(await cookies()).set('access_token', token, {
|
||||
httpOnly: true,
|
||||
secure: true,
|
||||
sameSite: 'strict',
|
||||
path: '/',
|
||||
domain: cookieDomain,
|
||||
domain: process.env.COOKIE_DOMAIN,
|
||||
maxAge: 3600,
|
||||
});
|
||||
|
||||
return response;
|
||||
await api.post('/users/sync', {}, {
|
||||
headers: { Cookie: `access_token=${token}` }
|
||||
});
|
||||
|
||||
NextResponse.json({ message: 'Access token set in cookie' });
|
||||
} catch (error) {
|
||||
console.error('Error in /api/set-token:', error);
|
||||
console.error('Error in /api/token:', error);
|
||||
return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 });
|
||||
}
|
||||
}
|
||||
22
webui/src/app/untoken/route.js
Normal file
22
webui/src/app/untoken/route.js
Normal file
@@ -0,0 +1,22 @@
|
||||
import {cookies} from 'next/headers';
|
||||
import {NextResponse} from 'next/server';
|
||||
|
||||
export async function GET() {
|
||||
try {
|
||||
(await cookies()).set({
|
||||
name: 'access_token',
|
||||
value: '',
|
||||
httpOnly: true,
|
||||
secure: true,
|
||||
sameSite: 'strict',
|
||||
path: '/',
|
||||
domain: process.env.COOKIE_DOMAIN,
|
||||
maxAge: -1,
|
||||
});
|
||||
|
||||
return NextResponse.json({message: 'Deleted access token'});
|
||||
} catch (error) {
|
||||
console.error('Error in /api/untoken:', error);
|
||||
return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user