Make Lit Work Again

This commit is contained in:
Gilbert 2024-05-15 17:44:59 -05:00
parent 8376aff7bd
commit 8488cfab83
3 changed files with 763 additions and 105 deletions

View File

@ -5,6 +5,9 @@ import { authenticateUser, createUser } from '../turnkey-backend';
const router = Router(); const router = Router();
//
// Turnkey
//
router.get('/registration/:email', async (req, res) => { router.get('/registration/:email', async (req, res) => {
const service: Service = req.app.get('service'); const service: Service = req.app.get('service');
const user = await service.getUserByEmail(req.params.email); const user = await service.getUserByEmail(req.params.email);
@ -41,6 +44,47 @@ router.post('/authenticate', async (req, res) => {
} }
}); });
//
// Lit
//
router.post('/validate', async (req, res) => {
const { message, signature, action } = req.body;
const { success, data } = await new SiweMessage(message).verify({
signature,
});
if (!success) {
return res.send({ success });
}
const service: Service = req.app.get('service');
const user = await service.getUserByEthAddress(data.address);
if (action === 'signup') {
if (user) {
return res.send({ success: false, error: 'user_already_exists' });
}
const newUser = await service.createUser({
ethAddress: data.address,
email: '',
name: '',
subOrgId: '',
turnkeyWalletId: '',
});
req.session.userId = newUser.id;
} else if (action === 'login') {
if (!user) {
return res.send({ success: false, error: 'user_not_found' });
}
req.session.userId = user.id;
}
res.send({ success });
});
//
// General
//
router.get('/session', (req, res) => { router.get('/session', (req, res) => {
if (req.session.userId) { if (req.session.userId) {
res.send({ res.send({

View File

@ -27,13 +27,13 @@
"@radix-ui/react-tabs": "^1.0.4", "@radix-ui/react-tabs": "^1.0.4",
"@radix-ui/react-toast": "^1.1.5", "@radix-ui/react-toast": "^1.1.5",
"@radix-ui/react-tooltip": "^1.0.7", "@radix-ui/react-tooltip": "^1.0.7",
"@snowballtools/auth": "^0.1.1", "@snowballtools/auth": "^0.2.0",
"@snowballtools/auth-lit": "^0.1.1", "@snowballtools/auth-lit": "^0.2.0",
"@snowballtools/js-sdk": "^0.1.1", "@snowballtools/js-sdk": "^0.1.1",
"@snowballtools/link-lit-alchemy-light": "^0.1.1", "@snowballtools/link-lit-alchemy-light": "^0.2.0",
"@snowballtools/material-tailwind-react-fork": "^2.1.10", "@snowballtools/material-tailwind-react-fork": "^2.1.10",
"@snowballtools/smartwallet-alchemy-light": "^0.1.1", "@snowballtools/smartwallet-alchemy-light": "^0.2.0",
"@snowballtools/types": "^0.1.1", "@snowballtools/types": "^0.2.0",
"@snowballtools/utils": "^0.1.1", "@snowballtools/utils": "^0.1.1",
"@tanstack/react-query": "^5.22.2", "@tanstack/react-query": "^5.22.2",
"@testing-library/jest-dom": "^5.17.0", "@testing-library/jest-dom": "^5.17.0",
@ -102,4 +102,4 @@
"typescript": "^5.3.3", "typescript": "^5.3.3",
"vite": "^5.2.0" "vite": "^5.2.0"
} }
} }

812
yarn.lock

File diff suppressed because it is too large Load Diff