Запрос на слияние 'sber_mobile' (#4) из sber_mobile в main

This commit is contained in:
DmitrievMS
2025-05-24 13:27:00 +00:00
3 changed files with 46 additions and 11 deletions

View File

@@ -1,18 +1,10 @@
const router = require('express').Router();
const { createClient } = require('@supabase/supabase-js');
const { getSupabaseUrl, getSupabaseKey } = require('./get-constants');
let supabase;
(async () => {
const supabaseUrl = await getSupabaseUrl();
const supabaseAnonKey = await getSupabaseKey();
supabase = createClient(supabaseUrl, supabaseAnonKey); // supabase — глобальная переменная
})();
const { getSupabaseClient } = require('./supabaseClient');
// POST /sign-in
router.post('/sign-in', async (req, res) => {
const { email, password } = req.body;
const supabase = getSupabaseClient();
const { data, error } = await supabase.auth.signInWithPassword({ email, password });
if (error) return res.status(400).json({ error: error.message });
res.json(data);
@@ -21,6 +13,7 @@ router.post('/sign-in', async (req, res) => {
// POST /sign-up
router.post('/sign-up', async (req, res) => {
const { email, password } = req.body;
const supabase = getSupabaseClient();
const { data, error } = await supabase.auth.signUp({ email, password });
if (error) return res.status(400).json({ error: error.message });
res.json(data);
@@ -29,6 +22,7 @@ router.post('/sign-up', async (req, res) => {
// POST /sign-out
router.post('/sign-out', async (req, res) => {
const { access_token } = req.body;
const supabase = getSupabaseClient();
supabase.auth.setSession({ access_token, refresh_token: '' });
const { error } = await supabase.auth.signOut();
if (error) return res.status(400).json({ error: error.message });
@@ -38,6 +32,7 @@ router.post('/sign-out', async (req, res) => {
// POST /reset-password
router.post('/reset-password', async (req, res) => {
const { email } = req.body;
const supabase = getSupabaseClient();
const { data, error } = await supabase.auth.resetPasswordForEmail(email);
if (error) return res.status(400).json({ error: error.message });
res.json(data);
@@ -46,6 +41,7 @@ router.post('/reset-password', async (req, res) => {
// POST /update-password
router.post('/update-password', async (req, res) => {
const { access_token, newPassword } = req.body;
const supabase = getSupabaseClient();
supabase.auth.setSession({ access_token, refresh_token: '' });
const { data, error } = await supabase.auth.updateUser({ password: newPassword });
if (error) return res.status(400).json({ error: error.message });

View File

@@ -1,6 +1,8 @@
const router = require('express').Router();
const authRouter = require('./auth');
const supabaseRouter = require('./supabaseClient');
module.exports = router;
router.use('/auth', authRouter);
router.use('/auth', authRouter);
router.use('/supabase', supabaseRouter);

View 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,
};