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) /usr/local/lib/node_modules/strapi/node_modules/koa-lusca/lib/ drwxr-xr-x | |
| Viewing file: Select action/file-type: /**!
* koa-lusca - lib/token.js
*
* Copyright(c) 2014 - 2015 fengmk2 and other contributors.
* MIT Licensed
*
* Authors:
* fengmk2 <fengmk2@gmail.com> (http://fengmk2.github.com)
*/
/*───────────────────────────────────────────────────────────────────────────*\
│ Copyright (C) 2014 eBay Software Foundation │
│ │
│hh ,'""`. │
│ / _ _ \ Licensed under the Apache License, Version 2.0 (the "License"); │
│ |(@)(@)| you may not use this file except in compliance with the License. │
│ ) __ ( You may obtain a copy of the License at │
│ /,'))((`.\ │
│(( (( )) )) http://www.apache.org/licenses/LICENSE-2.0 │
│ `\ `)(' /' │
│ │
│ Unless required by applicable law or agreed to in writing, software │
│ distributed under the License is distributed on an "AS IS" BASIS, │
│ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. │
│ See the License for the specific language governing permissions and │
│ limitations under the License. │
\*───────────────────────────────────────────────────────────────────────────*/
'use strict';
var crypto = require('crypto');
var LENGTH = 10;
function create(ctx, secretKey) {
if (!ctx.session) {
throw new Error('lusca requires this.session to be available in order to maintain state');
}
var secret = ctx.session[secretKey];
// Save the secret for validation
if (!secret) {
secret = ctx.session[secretKey] = crypto.pseudoRandomBytes(LENGTH).toString('base64');
}
return {
token: tokenize(salt(LENGTH), secret),
validate: function validate (ctx, token) {
if (typeof token !== 'string' || !ctx.session || !ctx.session[secretKey]) {
return false;
}
return token === tokenize(token.slice(0, LENGTH), ctx.session[secretKey]);
}
};
}
function tokenize(salt, secret) {
return salt + crypto.createHash('sha1').update(salt + secret).digest('base64');
}
function salt(len) {
var str = '';
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (var i = 0; i < len; i++) {
str += chars[Math.floor(Math.random() * chars.length)];
}
return str;
}
module.exports = {
create: create
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0053 ]-- |