add supabase refresh
This commit is contained in:
@@ -1,18 +1,10 @@
|
|||||||
const router = require('express').Router();
|
const router = require('express').Router();
|
||||||
const { createClient } = require('@supabase/supabase-js');
|
const { getSupabaseClient } = require('./supabaseClient');
|
||||||
const { getSupabaseUrl, getSupabaseKey } = require('./get-constants');
|
|
||||||
|
|
||||||
let supabase;
|
|
||||||
|
|
||||||
(async () => {
|
|
||||||
const supabaseUrl = await getSupabaseUrl();
|
|
||||||
const supabaseAnonKey = await getSupabaseKey();
|
|
||||||
supabase = createClient(supabaseUrl, supabaseAnonKey); // supabase — глобальная переменная
|
|
||||||
})();
|
|
||||||
|
|
||||||
// POST /sign-in
|
// POST /sign-in
|
||||||
router.post('/sign-in', async (req, res) => {
|
router.post('/sign-in', async (req, res) => {
|
||||||
const { email, password } = req.body;
|
const { email, password } = req.body;
|
||||||
|
const supabase = getSupabaseClient();
|
||||||
const { data, error } = await supabase.auth.signInWithPassword({ email, password });
|
const { data, error } = await supabase.auth.signInWithPassword({ email, password });
|
||||||
if (error) return res.status(400).json({ error: error.message });
|
if (error) return res.status(400).json({ error: error.message });
|
||||||
res.json(data);
|
res.json(data);
|
||||||
@@ -21,6 +13,7 @@ router.post('/sign-in', async (req, res) => {
|
|||||||
// POST /sign-up
|
// POST /sign-up
|
||||||
router.post('/sign-up', async (req, res) => {
|
router.post('/sign-up', async (req, res) => {
|
||||||
const { email, password } = req.body;
|
const { email, password } = req.body;
|
||||||
|
const supabase = getSupabaseClient();
|
||||||
const { data, error } = await supabase.auth.signUp({ email, password });
|
const { data, error } = await supabase.auth.signUp({ email, password });
|
||||||
if (error) return res.status(400).json({ error: error.message });
|
if (error) return res.status(400).json({ error: error.message });
|
||||||
res.json(data);
|
res.json(data);
|
||||||
@@ -29,6 +22,7 @@ router.post('/sign-up', async (req, res) => {
|
|||||||
// POST /sign-out
|
// POST /sign-out
|
||||||
router.post('/sign-out', async (req, res) => {
|
router.post('/sign-out', async (req, res) => {
|
||||||
const { access_token } = req.body;
|
const { access_token } = req.body;
|
||||||
|
const supabase = getSupabaseClient();
|
||||||
supabase.auth.setSession({ access_token, refresh_token: '' });
|
supabase.auth.setSession({ access_token, refresh_token: '' });
|
||||||
const { error } = await supabase.auth.signOut();
|
const { error } = await supabase.auth.signOut();
|
||||||
if (error) return res.status(400).json({ error: error.message });
|
if (error) return res.status(400).json({ error: error.message });
|
||||||
@@ -38,6 +32,7 @@ router.post('/sign-out', async (req, res) => {
|
|||||||
// POST /reset-password
|
// POST /reset-password
|
||||||
router.post('/reset-password', async (req, res) => {
|
router.post('/reset-password', async (req, res) => {
|
||||||
const { email } = req.body;
|
const { email } = req.body;
|
||||||
|
const supabase = getSupabaseClient();
|
||||||
const { data, error } = await supabase.auth.resetPasswordForEmail(email);
|
const { data, error } = await supabase.auth.resetPasswordForEmail(email);
|
||||||
if (error) return res.status(400).json({ error: error.message });
|
if (error) return res.status(400).json({ error: error.message });
|
||||||
res.json(data);
|
res.json(data);
|
||||||
@@ -46,6 +41,7 @@ router.post('/reset-password', async (req, res) => {
|
|||||||
// POST /update-password
|
// POST /update-password
|
||||||
router.post('/update-password', async (req, res) => {
|
router.post('/update-password', async (req, res) => {
|
||||||
const { access_token, newPassword } = req.body;
|
const { access_token, newPassword } = req.body;
|
||||||
|
const supabase = getSupabaseClient();
|
||||||
supabase.auth.setSession({ access_token, refresh_token: '' });
|
supabase.auth.setSession({ access_token, refresh_token: '' });
|
||||||
const { data, error } = await supabase.auth.updateUser({ password: newPassword });
|
const { data, error } = await supabase.auth.updateUser({ password: newPassword });
|
||||||
if (error) return res.status(400).json({ error: error.message });
|
if (error) return res.status(400).json({ error: error.message });
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
const router = require('express').Router();
|
const router = require('express').Router();
|
||||||
const authRouter = require('./auth');
|
const authRouter = require('./auth');
|
||||||
|
const supabaseRouter = require('./supabaseClient');
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
|
|
||||||
router.use('/auth', authRouter);
|
router.use('/auth', authRouter);
|
||||||
|
router.use('/supabase', supabaseRouter);
|
||||||
37
server/routers/kfu-m-24-1/sber_mobile/supabaseClient.js
Normal file
37
server/routers/kfu-m-24-1/sber_mobile/supabaseClient.js
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
const { createClient } = require('@supabase/supabase-js');
|
||||||
|
const { getSupabaseUrl, getSupabaseKey } = require('./get-constants');
|
||||||
|
|
||||||
|
let supabase = null;
|
||||||
|
|
||||||
|
async function initSupabaseClient() {
|
||||||
|
const supabaseUrl = await getSupabaseUrl();
|
||||||
|
const supabaseAnonKey = await getSupabaseKey();
|
||||||
|
supabase = createClient(supabaseUrl, supabaseAnonKey);
|
||||||
|
return supabase;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSupabaseClient() {
|
||||||
|
if (!supabase) {
|
||||||
|
throw new Error('Supabase client is not initialized. Call initSupabaseClient first.');
|
||||||
|
}
|
||||||
|
return supabase;
|
||||||
|
}
|
||||||
|
|
||||||
|
// POST /refresh-supabase-client
|
||||||
|
router.post('/refresh-supabase-client', async (req, res) => {
|
||||||
|
try {
|
||||||
|
await initSupabaseClient();
|
||||||
|
res.json({ success: true, message: 'Supabase client refreshed' });
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ error: error.message });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Инициализация клиента при старте
|
||||||
|
(async () => {
|
||||||
|
await initSupabaseClient();
|
||||||
|
})();
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
getSupabaseClient,
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user