我不太清楚如何在express/SQL中使用Passport的序列化用户功能。
以下是我的问题:
我的应用配置如下所示:
var passport = require('passport');
app.use(session({ secret: 'Secret',
saveUninitialized: true,
resave: true}));
app.use(passport.initialize());
app.use(passport.session());
我还在twitter_auth.js中向应用程序公开以下代码:
// twitter authentication and login
app.get('/auth/twitter', passport.authenticate('twitter'));
// handle callback after twitter has authenticated user
app.get('/auth/twitter/callback',passport.authenticate('twitter',{
successRedirect: '/',
failureRedirect: '/'
}));
// used to serialize user
passport.serializeUser(function(user,done){
done(null,user);
});
// used to deserialize the user
passport.deserializeUser(function(User_ID,done){
connection.query('SELECT * from UsersTable where User_ID = '+User_ID, function(err,rows){
done(err,rows[0]);
});
});
当我尝试发现它时:
// used to serialize user
passport.serializeUser(function(user,done){
console.log('spotted here!');
done(null,user);
});
我什么也没看到。怎么了?
回答您的两个问题:
>
您必须定义身份验证代码中的“用户”是什么。
它应该看起来像这样:
passport.use(new TwitterStrategy({
consumerKey:*******,
consumerSecret:******,
callbackURL:'/auth/twitter/callback'
},
function(token, tokenSecret, profile,done){
var user = db.call(retrieve a user) ; //whatever you want it to be
done(null,user);
});
身份验证路由首先是通过某个请求对象访问的,它是那里的代码:
done(null,user);
知道您的 req 对象。据我了解,就是这样。
这方面的一个很好的来源是: http://toon.io/understanding-passportjs-authentication-flow/
问题内容: 您如何向外行解释Passport的序列化和反序列化方法的工作流程。 叫到哪里去了? 我们紧接着在工作流程中调用它吗? 我仍在努力寻找解决方案。我有一个完整的工作应用程序,没有遇到任何类型的错误。 我只是想了解这里到底发生了什么? 任何帮助表示赞赏。 问题答案: 叫到哪里去了? 用户ID(您作为函数的第二个参数提供)被保存在会话中,以后用于通过函数检索整个对象。 确定应将用户对象的哪些数
当我尝试将响应正文反序列化为POJO时,会设置空值,并且在未使用JsonIgnoreProperties(ignoreUnknown=true)时会遇到以下错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“City”(类TestNGMaven.restAssuredProject.WeatherI
我的系统中存在大量对象。定义如下: 现在,我需要将这些对象序列化为字节,以便将它们存储在redis服务器中,并在稍后取回以运行方法。 很明显,通常的序列化库在Java,如jackson,在这里是行不通的。为了运行代码,序列化的字节必须包含类信息。JDK序列化在这里是一个选项: 但是,通过这种方式,需要的所有子类以及从方法引用的类来实现接口,该接口很难控制。 所以,我想知道是否有另一种不需要各种限制
我试图做api-auth通过检查生成令牌从登录用户的用户名与md5加密方法在laravel 5.5飞,不想保存令牌到用户的表。当用户注销时,令牌将无效。URL将是这样的: http://myserver.com/products?token=...... 我该怎么做? 新增-这是第44届世界技能大赛的测试项目,以下为测试项目文件: 认证 A.登录(v1/auth/登录) 描述:供客户端通过用户名和
问题内容: 有没有一种方法可以序列化angularjs的功能? 我的帖子现在看起来像这样。 问题答案: 这不是使用AngularJS访问表单数据的方式。表单中的数据应在范围内绑定。 因此,使用一个对象,例如$ scope.formData,它将包含您的所有数据结构,然后应使用ng-model将每个表单元素绑定到此对象。 例如: http://jsfiddle.net/rd13/AvGKj/13/
我正在尝试使用Laravel护照,我不知道我是否发现了一个bug或者我遗漏了什么。 登录控制器: 因此,我在用户登录时创建令牌。在数据库中,我看到生成的令牌在字段处过期:一周后,所以它是正确的。但如果我更改了旧日期的值,我仍然可以使用此令牌。。。 拉威尔只是忽略了这个领域?为什么? 我做了研究,但我有点困惑。。。很多人说代币不会过期或在一年内过期。但后来我发现了一些关于这个片段的帖子: 我明白To
Inserting in Sorted Order # bisect_example.py import bisect # A series of random numbers values = [14, 85, 77, 26, 50, 45, 66, 79, 10, 3, 84, 77, 1] print('New Pos Contents') print('--- --- ----
问题内容: 我有以下课程- 我正在使用objectMapper.valueToTree(sections)将其转换为JsonNode。但是,当我打印相同的内容时,我仅从Entity类中看到id和name字段,而从Images列表中看不到任何内容。我是否需要添加任何种类的特殊逻辑或注释以确保同时打印列表。 以下是主要课程- 问题答案: 您需要为Entity#images添加getter和setter