Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const keystone = require('keystone');
const multibase = require('multibase');
const { fromTokenToUnit, bytesToHex } = require('@arcblock/forge-util');
const { fromAddress } = require('@arcblock/forge-wallet');
const { Handlers } = require('@arcblock/did-auth');
const auth = require('../../config/auth');
const KeystoneStorage = require('../../config/storage/keystone');
const handler = new Handlers({
tokenGenerator: req => req.sessionID + Date.now(),
tokenStorage: new KeystoneStorage(),
authenticator: auth,
});
module.exports = app => {
app.get('/api/session', async (req, res) => {
res.json(req.session);
});
app.post('/api/logout', async (req, res) => {
req.session.user = null;
res.json(req.session);
});
// Enable payment
const Mcrypto = require('@arcblock/mcrypto');
const { fromSecretKey, WalletType } = require('@arcblock/forge-wallet');
const { Authenticator } = require('@arcblock/did-auth');
const type = WalletType({
role: Mcrypto.types.RoleType.ROLE_APPLICATION,
pk: Mcrypto.types.KeyType.ED25519,
hash: Mcrypto.types.HashType.SHA3,
});
const wallet = fromSecretKey(process.env.APP_SK, type).toJSON();
module.exports = new Authenticator({
wallet,
baseUrl: 'http://wangshijun.natapp1.cc',
appInfo: {
chainHost: 'http://did-workshop.arcblock.co:8210/api',
chainId: 'forge',
chainToken: 'TBA',
copyright: 'https://example-application/copyright',
decimals: 16,
description: 'Starter projects to develop web application on forge',
icon: '/images/logo@2x.png',
name: 'Forge Web Starter',
path: 'https://arcwallet.io/i/',
publisher: `did:abt:${wallet.address}`,
subtitle: 'Starter projects to develop web application on forge',
},
});