change: re-fetch lnurl after delay

This commit is contained in:
MTG2000
2022-06-09 14:45:36 +03:00
parent ededc17fa0
commit c4bdfd991c
4 changed files with 37 additions and 36 deletions

View File

@@ -9,10 +9,8 @@ const lnurlService = require('../../auth/services/lnurl.service');
const isLoggedInHandler = async (req, res) => {
// console.log(req.cookies);
try {
const login_session = req.cookies?.login_session;
// console.log(login_session);
if (login_session) {
const { payload } = await jose.jwtVerify(login_session, Buffer.from(JWT_SECRET), {
@@ -38,8 +36,6 @@ const isLoggedInHandler = async (req, res) => {
httpOnly: true,
})
.json({
hash,
token,
logged_in: true
});
} else {

View File

@@ -2,8 +2,8 @@
const { prisma } = require('../../prisma');
const LnurlService = require('../../auth/services/lnurl.service')
const serverless = require('serverless-http');
const { getAuthTokenByHash, createHash, associateTokenToHash } = require('../../auth/services/lnurl.service');
const { sessionsStore, createExpressApp } = require('../../modules');
const { createHash, associateTokenToHash } = require('../../auth/services/lnurl.service');
const { createExpressApp } = require('../../modules');
const express = require('express');
const jose = require('jose');
const { JWT_SECRET } = require('../../utils/consts');

View File

@@ -1,21 +1,11 @@
const BOLT_FUN_LIGHTNING_ADDRESS = 'johns@getalby.com'; // #TODO, replace it by bolt-fun lightning address if there exist one
const JWT_SECRET = process.env.JWT_SECRET;
const LNURL_AUTH_HOST = process.env.LNURL_AUTH_HOST
const SESSION_SECRET = process.env.SESSION_SECRET
const CORS_HEADERS = {
'Access-Control-Allow-Origin': 'http://localhost:3000',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
'Access-Control-Allow-Credentials': true
};
const CONSTS = {
JWT_SECRET,
BOLT_FUN_LIGHTNING_ADDRESS,
LNURL_AUTH_HOST,
CORS_HEADERS,
SESSION_SECRET
}
module.exports = CONSTS;

View File

@@ -10,7 +10,7 @@ import { IoQrCode } from "react-icons/io5";
const getLnurlAuth = async () => {
const fetchLnurlAuth = async () => {
const res = await fetch(CONSTS.apiEndpoint + '/login', {
credentials: 'include'
})
@@ -18,15 +18,46 @@ const getLnurlAuth = async () => {
return data;
}
const useLnurlQuery = () => {
const [loading, setLoading] = useState(true)
const [error, setError] = useState<any>(null);
const [data, setData] = useState("")
useEffect(() => {
let timeOut: NodeJS.Timeout;
const doFetch = async () => {
const res = await fetchLnurlAuth();
if (!res?.encoded)
setError(true)
else {
setLoading(false);
setData(res.encoded);
timeOut = setTimeout(doFetch, 1000 * 60 * 2)
}
}
doFetch()
return () => clearTimeout(timeOut)
}, [])
return {
loadingLnurl: loading,
error,
lnurlAuth: data
}
}
export default function LoginPage() {
const [loadingLnurl, setLoadingLnurl] = useState(true)
const [showQr, setShowQr] = useState(false)
const [lnurlAuth, setLnurlAuth] = useState("");
const [isLoggedIn, setIsLoggedIn] = useState(false);
const [error, setError] = useState<any>(null)
const navigate = useNavigate()
const { loadingLnurl, lnurlAuth, error } = useLnurlQuery()
console.log(lnurlAuth);
const meQuery = useMeQuery({
onCompleted: (data) => {
@@ -41,23 +72,7 @@ export default function LoginPage() {
}
})
useEffect(() => {
getLnurlAuth()
.then(data => {
setLoadingLnurl(false);
setLnurlAuth(data.encoded);
if (!data?.encoded)
setError(true);
})
.catch((error) => {
setError(error)
})
}, [])
const startPolling = () => {
// meQuery.startPolling(3000)
const interval = setInterval(() => {
fetch(CONSTS.apiEndpoint + '/is-logged-in', {
credentials: 'include'