Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/strapi-plugin-users-permissions/services/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict';
/**
* Jwt.js service
*
* @description: A set of functions similar to controller's actions to avoid code duplication.
*/
const _ = require('lodash');
const jwt = require('jsonwebtoken');
module.exports = {
getToken(ctx) {
const params = _.assign({}, ctx.request.body, ctx.request.query);
let token = '';
if (ctx.request && ctx.request.header && ctx.request.header.authorization) {
const parts = ctx.request.header.authorization.split(' ');
if (parts.length === 2) {
const scheme = parts[0];
const credentials = parts[1];
if (/^Bearer$/i.test(scheme)) {
token = credentials;
}
} else {
throw new Error(
'Invalid authorization header format. Format is Authorization: Bearer [token]'
);
}
} else if (params.token) {
token = params.token;
} else {
throw new Error('No authorization header was found');
}
return this.verify(token);
},
issue(payload, jwtOptions = {}) {
_.defaults(jwtOptions, strapi.plugins['users-permissions'].config.jwt);
return jwt.sign(
_.clone(payload.toJSON ? payload.toJSON() : payload),
_.get(strapi.plugins, ['users-permissions', 'config', 'jwtSecret']),
jwtOptions
);
},
verify(token) {
return new Promise(function(resolve, reject) {
jwt.verify(
token,
_.get(strapi.plugins, ['users-permissions', 'config', 'jwtSecret']),
{},
function(err, tokenPayload = {}) {
if (err) {
return reject(new Error('Invalid token.'));
}
resolve(tokenPayload);
}
);
});
},
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0259 ]-- |