TypeError: fn.apply(...)[(intermediate value)] is not a function
at Object.<anonymous> (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/koa-route/index.js:34:19)
at [object Generator].next (native)
at onFulfilled (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/co/index.js:65:19)
at /Users/dave/Documents/repos/eatYourFriends2017/node_modules/co/index.js:54:5
at new Promise (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/core-js/modules/es6.promise.js:193:7)
at Object.co (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/co/index.js:50:10)
at converted (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/koa-convert/index.js:17:15)
at dispatch (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/koa-compose/index.js:43:32)
at next (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/koa-compose/index.js:44:18)
at /Users/dave/Documents/repos/eatYourFriends2017/node_modules/koa-passport/lib/framework/koa.js:143:16
at run (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/core-js/modules/es6.promise.js:89:22)
at /Users/dave/Documents/repos/eatYourFriends2017/node_modules/core-js/modules/es6.promise.js:102:28
at flush (/Users/dave/Documents/repos/eatYourFriends2017/node_modules/core-js/modules/_microtask.js:18:9)
at nextTickCallbackWith0Args (node.js:420:9)
at process._tickDomainCallback (node.js:390:13)
import Koa from 'koa';
const session = require('koa-generic-session');
import convert from 'koa-convert';
import config from '../config';
import twitterLogin from './middleware/twitterLogin';
const app = new Koa();
// ------------------------------------
// Session
// ------------------------------------
app.keys = ['your-session-secret'];
app.use(convert(session(app)));
console.log('------ server config: ', config);
// --------------------------------------
// passport
// --------------------------------------
// body parser
var bodyParser = require('koa-bodyparser');
app.use(bodyParser());
var passport = require('koa-passport');
app.use(passport.initialize());
app.use(passport.session());
twitterLogin(app, config, passport);
export default app;
import util from 'util';
const twitterConfig = require('./../keys/twitter.json');
const TwitterStrategy = require('passport-twitter').Strategy;
const route = require('koa-route');
export default (app, config, passport) => {
const twitterCallbackUrl = `http://${config.server_host}:${config.api_port}/auth/twitter/callback`;
console.log('twitter callback url: ', twitterCallbackUrl);
/**
* TWITTER login
*/
var keys = {
callbackURL: twitterCallbackUrl,
consumerKey: twitterConfig.consumer_key,
consumerSecret: twitterConfig.consumer_secret
};
passport.use(new TwitterStrategy(keys,
function (token, tokenSecret, profile, cb) {
profile.twAuth = {
tokenSecret,
token
};
console.log('profile: ', util.inspect(profile, {depth: 0}));
cb(null, profile);
// UserModel.findOrSaveTwitter(profile)
// .then(user => cb(null, user));
}
));
app.use(route.get('/auth/twitter', passport.authenticate('twitter')));
app.use(route.get('/auth/twitter/callback',
passport.authenticate('twitter', {
successRedirect: '/',
failureRedirect: '/'
})
));
/* app.use(function *(next) {
yield next;
if (this.session && this.session.user) {
console.log('user: ', this.session.user);
console.log('body: ', this.body);
}
}); */
};
{
"name": "react-redux-starter-kit",
"version": "3.0.0-alpha.0",
"description": "Get started with React, Redux, and React-Router!",
"main": "index.js",
"engines": {
"node": ">=4.2.0",
"npm": "^3.0.0"
},
"scripts": {
"clean": "rimraf dist",
"compile": "better-npm-run compile",
"lint": "eslint src tests server",
"lint:fix": "npm run lint -- --fix",
"start": "better-npm-run start",
"dev": "better-npm-run dev",
"dev:no-debug": "npm run dev -- --no_debug",
"test": "better-npm-run test",
"test:dev": "npm run test -- --watch",
"deploy": "better-npm-run deploy",
"deploy:dev": "better-npm-run deploy:dev",
"deploy:prod": "better-npm-run deploy:prod",
"codecov": "cat coverage/*/lcov.info | codecov"
},
"betterScripts": {
"compile": {
"command": "babel-node bin/compile",
"env": {
"DEBUG": "app:*"
}
},
"dev": {
"command": "nodemon --exec babel-node bin/server",
"env": {
"NODE_ENV": "development",
"DEBUG": "app:*"
}
},
"deploy": {
"command": "npm run clean && npm run compile",
"env": {
"DEBUG": "app:*"
}
},
"deploy:dev": {
"command": "npm run deploy",
"env": {
"NODE_ENV": "development",
"DEBUG": "app:*"
}
},
"deploy:prod": {
"command": "npm run deploy",
"env": {
"NODE_ENV": "production",
"DEBUG": "app:*"
}
},
"start": {
"command": "babel-node bin/server",
"env": {
"DEBUG": "app:*"
}
},
"test": {
"command": "babel-node ./node_modules/karma/bin/karma start build/karma.conf",
"env": {
"NODE_ENV": "test",
"DEBUG": "app:*"
}
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/davezuko/react-redux-starter-kit.git"
},
"author": "David Zukowski <[email protected]> (http://zuko.me)",
"license": "MIT",
"dependencies": {
"babel-cli": "^6.5.1",
"babel-core": "^6.3.17",
"babel-loader": "^6.2.0",
"babel-plugin-transform-runtime": "^6.3.13",
"babel-polyfill": "^6.9.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-react-optimize": "^1.0.1",
"babel-preset-stage-0": "^6.3.13",
"babel-register": "^6.3.13",
"babel-runtime": "^6.3.19",
"better-npm-run": "0.0.9",
"css-loader": "^0.23.0",
"cssnano": "^3.3.2",
"debug": "^2.2.0",
"extract-text-webpack-plugin": "^1.0.0",
"file-loader": "^0.9.0",
"fs-extra": "^0.30.0",
"history": "^2.0.0",
"html-webpack-plugin": "^2.7.1",
"imports-loader": "^0.6.5",
"ip": "^1.1.2",
"json-loader": "^0.5.4",
"koa": "^2.0.0-alpha.3",
"koa-bodyparser": "^2.2.0",
"koa-connect-history-api-fallback": "^0.3.0",
"koa-convert": "^1.2.0",
"koa-generic-session": "^1.11.1",
"koa-passport": "git+ssh://[email protected]/rkusa/koa-passport.git#v2.x",
"koa-proxy": "^0.6.0",
"koa-route": "^2.4.2",
"koa-session": "^3.3.1",
"koa-static": "^3.0.0",
"node-sass": "^3.7.0",
"normalize.css": "^4.1.1",
"passport-twitter": "^1.0.4",
"postcss-loader": "^0.9.0",
"react": "^15.0.0",
"react-dom": "^15.0.0",
"react-redux": "^4.0.0",
"react-router": "^2.2.0",
"react-router-redux": "^4.0.0",
"redux": "^3.0.0",
"redux-thunk": "^2.0.0",
"rimraf": "^2.5.1",
"sass-loader": "^3.0.0",
"style-loader": "^0.13.0",
"url-loader": "^0.5.6",
"webpack": "^1.12.14",
"yargs": "^4.0.0"
},
"devDependencies": {
"babel-eslint": "^6.0.0-beta.6",
"chai": "^3.4.1",
"chai-as-promised": "^5.1.0",
"chai-enzyme": "^0.5.0",
"cheerio": "^0.20.0",
"codecov": "^1.0.1",
"enzyme": "^2.0.0",
"eslint": "^2.10.2",
"eslint-config-standard": "^5.1.0",
"eslint-config-standard-react": "^2.2.0",
"eslint-plugin-babel": "^3.2.0",
"eslint-plugin-flow-vars": "^0.4.0",
"eslint-plugin-promise": "^1.0.8",
"eslint-plugin-react": "^5.0.0",
"eslint-plugin-standard": "^1.3.1",
"isparta-loader": "^2.0.0",
"karma": "^1.0.0",
"karma-coverage": "^1.0.0",
"karma-mocha": "^1.0.1",
"karma-mocha-reporter": "^2.0.0",
"karma-phantomjs-launcher": "^1.0.0",
"karma-webpack-with-fast-source-maps": "^1.9.2",
"material-ui": "^0.15.1",
"mocha": "^2.2.5",
"nodemon": "^1.8.1",
"phantomjs-prebuilt": "^2.1.3",
"react-addons-test-utils": "^15.0.0",
"react-mdl": "^1.6.0",
"react-tap-event-plugin": "^1.0.0",
"redbox-react": "^1.2.2",
"redux-devtools": "^3.3.1",
"redux-devtools-dock-monitor": "^1.1.1",
"redux-devtools-log-monitor": "^1.0.11",
"sinon": "^1.17.3",
"sinon-chai": "^2.8.0",
"webpack-dev-middleware": "^1.6.1",
"webpack-hot-middleware": "^2.6.0"
}
}