【问题标题】:socketstream tutorials/authentication can't use Everyauth with the chat demosocketstream tutorials/authentication can't use Everyauth with the chat demo
【发布时间】:2016-03-01 04:54:37
【问题描述】:

https://socketstream.github.io/socketstream/docs/#/tutorials/authentication

当我把这部分的代码放到demo项目(实时聊天)中时,聊天功能不起作用。谁能帮我这个? 这是我的代码:

// ======================分隔符============

var ss = require('socketstream');
var redirect = require('connect-redirection');
var everyauth = require('everyauth');
var http = require('http');

var conf = require('./conf/conf');
var auth_twitter = conf.oauth.twitter;

// Define a single-page client called 'main'
ss.client.define('main', {
view: 'app.html',
css: ['../node_modules/normalize.css/normalize.css', 'app.css'],
code: ['../node_modules/es6-shim/es6-shim.js', 'libs/jquery.min.js', 'app'],
tmpl: 'chat'
});

ss.http.middleware.prepend(redirect());

// Serve this client on the root URL
ss.http.route('/', function(req, res){
// if(!req.session.userId){ return res.redirect('/login'); }
res.serveClient('main');
});

// Use server-side compiled Hogan (Mustache) templates. Others engines available
ss.client.templateEngine.use(require('ss-hogan'));

// Minimize and pack assets if you type: SS_ENV=production node app.js
if (ss.env === 'production') ss.client.packAssets();

everyauth.twitter
.consumerKey(auth_twitter.KEY)
.consumerSecret(auth_twitter.SEC)
.findOrCreateUser( function (session, accessToken, accessTokenSecret, twitterUserMetadata) {
var userName = twitterUserMetadata.screen_name;
console.log('Twitter Username is', userName);
session.userId = userName;
session.save();
return true;
})
.redirectPath('/');

var bodyParser = require('body-parser');
//ss.http.middleware.prepend(bodyParser.urlencoded());
//ss.http.middleware.append(everyauth.middleware());

var server = http.Server(ss.http.middleware);
server.listen(3000);
ss.start(server);

【问题讨论】:

  • 它有什么作用?您是否在调试器中单步执行或添加了 console.logs 以找出问题所在?
  • 我想用 twitter 帐户登录到演示实时聊天应用程序,但是当我按照教程添加everyauth 代码时,websocket 似乎无法正常工作,这都是中间件的事情,所以我无法弄清楚从哪里调试

标签: javascript node.js rpc everyauth socketstream


【解决方案1】:

在阅读了一些文档后,我尝试了这个并且它有效: 替换最后三行代码:

var server = http.Server(ss.http.middleware);
server.listen(3000);
ss.start(server);

用这个:

ss.start();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2022-11-20
    相关资源
    最近更新 更多