Files
OpenSign/apps/OpenSignServer/cloud/parsefunction/getapitoken.js
T

35 lines
1.1 KiB
JavaScript

import axios from 'axios';
import { cloudServerUrl } from '../../Utils.js';
export default async function getapitoken(request) {
try {
const serverUrl = cloudServerUrl; //process.env.SERVER_URL;
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('userId', { __type: 'Pointer', className: '_User', objectId: userId });
const res = await tokenQuery.first({ useMasterKey: true });
if (res) {
return { status: 'success', result: res.get('token') };
} else {
return { error: 'api token found.' };
}
} else {
return { error: 'Invalid session token.' };
}
} catch (err) {
console.log('Err in getapitoken', err);
if (err.code == 209) {
return { error: 'Invalid session token.' };
} else {
return { error: "You don't have access." };
}
}
}