created generateapitoken, getapitoken cloud function & generatetoken route

This commit is contained in:
prafull-opensignlabs
2023-12-02 21:16:56 +05:30
parent c44149050c
commit b47bf437a9
7 changed files with 253 additions and 3 deletions
@@ -0,0 +1,44 @@
import { generateApiKey } from 'generate-api-key';
import axios from 'axios';
export default async function generateApiToken(request) {
const serverUrl = process.env.SERVER_URL;
try {
const userRes = await axios.get(serverUrl + '/users/me', {
headers: {
'X-Parse-Application-Id': process.env.APP_ID,
'X-Parse-Session-Token': request.headers['sessiontoken'],
},
});
const userId = userRes.data && userRes.data.objectId;
if (userId) {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('Id', userId);
const token = await tokenQuery.first({ useMasterKey: true });
if (token !== undefined) {
// return exsiting Token
console.log('Regenerate API Token');
const AppToken = Parse.Object.extend('appToken');
const updateToken = new AppToken();
updateToken.id = token.id;
const newToken = generateApiKey({ method: 'base62', prefix: 'opensign' });
updateToken.set('token', newToken);
const updatedRes = await updateToken.save(null, { useMasterKey: true });
return updatedRes;
} else {
// Create New Token
console.log('New API Token Generation');
const appToken = Parse.Object.extend('appToken');
const appTokenQuery = new appToken();
const token = generateApiKey({ method: 'base62', prefix: 'opensign' });
appTokenQuery.set('token', token);
appTokenQuery.set('Id', userId);
const newRes = await appTokenQuery.save(null, { useMasterKey: true });
return newRes;
}
} else {
return 'User not found!';
}
} catch (err) {
console.log('err ', err);
}
}
@@ -0,0 +1,24 @@
import axios from 'axios';
export default async function getapitoken(request) {
const serverUrl = process.env.SERVER_URL;
try {
const userRes = await axios.get(serverUrl + '/users/me', {
headers: {
'X-Parse-Application-Id': process.env.APP_ID,
'X-Parse-Session-Token': request.headers['sessiontoken'],
},
});
const userId = userRes.data && userRes.data.objectId;
if (userId) {
const tokenQuery = new Parse.Query('appToken');
tokenQuery.equalTo('Id', userId);
const res = await tokenQuery.first({ useMasterKey: true });
if (res) {
return { status: 'success', result: res.get('token') };
}
}
} catch (err) {
console.log('Err', err);
return { status: 'error', result: err };
}
}