Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save dclarke-modus/5fcdc73b87510cb0707c34ef06a3adde to your computer and use it in GitHub Desktop.
Save dclarke-modus/5fcdc73b87510cb0707c34ef06a3adde to your computer and use it in GitHub Desktop.
error: Sending 500 ("Server Error") response:
TypeError: sails.getDatastore is not a function
at Object.generateToken (/var/www/api/api/services/Oauth2TokenGranterService.js:13:23)
at Object.wrapper [as generateToken] (/var/www/api/node_modules/@sailshq/lodash/lib/index.js:3250:19)
at Object.token (/var/www/api/api/controllers/AuthController.js:19:28)
at wrapper (/var/www/api/node_modules/@sailshq/lodash/lib/index.js:3250:19)
at routeTargetFnWrapper (/var/www/api/node_modules/sails/lib/router/bind.js:181:5)
at callbacks (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:164:37)
at param (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:138:11)
at param (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:135:11)
at pass (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:145:5)
at nextRoute (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:100:7)
at callbacks (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:167:11)
at /var/www/api/api/policies/oauth2ClientCredentials.js:29:14
at tryCatcher (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/util.js:11:23)
at Promise._settlePromiseFromHandler (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:491:31)
at Promise._settlePromise (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:548:18)
at Promise._settlePromise0 (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:593:10)
at Promise._settlePromises (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:676:18)
at Promise._fulfill (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:617:18)
at /var/www/api/node_modules/waterline/node_modules/bluebird/js/release/nodeback.js:42:21
at wrapper (/var/www/api/node_modules/lodash/index.js:3592:19)
at applyInOriginalCtx (/var/www/api/node_modules/waterline/lib/waterline/utils/normalize.js:421:80)
at wrappedCallback (/var/www/api/node_modules/waterline/lib/waterline/utils/normalize.js:324:18)
error: Sending 500 ("Server Error") response:
TypeError: sails.getDatastore is not a function
at Object.generateToken (/var/www/api/api/services/Oauth2TokenGranterService.js:13:23)
at Object.wrapper [as generateToken] (/var/www/api/node_modules/@sailshq/lodash/lib/index.js:3250:19)
at Object.token (/var/www/api/api/controllers/AuthController.js:19:28)
at wrapper (/var/www/api/node_modules/@sailshq/lodash/lib/index.js:3250:19)
at routeTargetFnWrapper (/var/www/api/node_modules/sails/lib/router/bind.js:181:5)
at callbacks (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:164:37)
at param (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:138:11)
at param (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:135:11)
at pass (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:145:5)
at nextRoute (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:100:7)
at callbacks (/var/www/api/node_modules/@sailshq/express/lib/router/index.js:167:11)
at /var/www/api/api/policies/oauth2ClientCredentials.js:29:14
at tryCatcher (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/util.js:11:23)
at Promise._settlePromiseFromHandler (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:491:31)
at Promise._settlePromise (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:548:18)
at Promise._settlePromise0 (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:593:10)
at Promise._settlePromises (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:676:18)
at Promise._fulfill (/var/www/api/node_modules/waterline/node_modules/bluebird/js/release/promise.js:617:18)
at /var/www/api/node_modules/waterline/node_modules/bluebird/js/release/nodeback.js:42:21
at wrapper (/var/www/api/node_modules/lodash/index.js:3592:19)
at applyInOriginalCtx (/var/www/api/node_modules/waterline/lib/waterline/utils/normalize.js:421:80)
at wrappedCallback (/var/www/api/node_modules/waterline/lib/waterline/utils/normalize.js:324:18)
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
var jwToken = require("jsonwebtoken");
module.exports = {
generateToken:function(client, callback)
{
return sails.getDatastore('cache').leaseConnection(function during(db, proceed) {
db.get("auth_client_token_"+client.id,function(err, cacheData){
if(err)
{
return proceed(err);
}
var token = null;
try
{
token = JSON.parse(cacheData);
}
catch (e)
{
return proceed(e);
}
//Check token was found
if(!token)
{
jwt.sign(client, app.get('superSecret'), { expiresInMinutes: sails.config.oauth.ttl}, function(err, tk){
db.set("auth_client_token_"+client.id, tk);
proceed(undefined, tk);
});
}
else
{
db.verify(token,app.get('superSecret'), function(err, decoded) {
proceed(undefined, token);
});
}
});
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment