首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推特Oauth Node.js Express console.log未显示

推特Oauth Node.js Express console.log未显示
EN

Stack Overflow用户
提问于 2019-11-16 16:34:49
回答 1查看 61关注 0票数 0

我正在使用以下代码在node.js中实现twitter Oauth。令牌和tokenSecret未显示在控制台中。

其他一切都正常工作,比如登录、身份验证和回调函数。

我在控制台中看到的访问日志如下所示:

GET / 304 197.320 ms --

GET /stylesheets/style.css304 2.092毫秒--

GET /auth/twitter 302 404.252毫秒-0

我所要做的就是显示经过身份验证的用户的访问令牌和访问秘密。

代码语言:javascript
复制
var createError = require('http-errors');
var express = require('express');
var session = require('express-session');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var passport = require('passport');
var TwitterStrategy = require('passport-twitter').Strategy;
var config = require('./config');

var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
  secret: 'secret-key',
  resave: true,
  saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());

// passport-twitter settings
passport.use(new TwitterStrategy({
    consumerKey: config.consumerKey,
    consumerSecret: config.consumerSecret,
    callbackURL: config.callbackURL
  },
  // After authentication

  function(token, tokenSecret, profile, done) {
    console.log("token: " + token);
    console.log("tokenSecret: " + tokenSecret);
    return done(null, profile);
  }
));
// Save to session
passport.serializeUser(function(user, done) {
  done(null, user);
});
passport.deserializeUser(function(user, done) {
  done(null, user);
});


app.use('/', indexRouter);
app.use('/success', usersRouter);
app.get('/auth/twitter', passport.authenticate('twitter'));
app.get('/auth/twitter/callback', 
  passport.authenticate('twitter', { failureRedirect: '/?auth_failed' }), 
  function (req, res) {
    res.redirect('/success');
  });




// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};
  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;
EN

回答 1

Stack Overflow用户

发布于 2019-11-16 20:56:54

我将twitter应用程序页面中的回调url设置为"http://localhost:3000/auth/twitter/callback“,它就起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58888934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档