首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Passport-Facebook没有搜索我的模型

Passport-Facebook没有搜索我的模型
EN

Stack Overflow用户
提问于 2014-04-12 17:29:31
回答 1查看 120关注 0票数 0

我正在尝试在facebook和sails js.in中间件上使用passportjs,这是我的实现。

代码语言:javascript
复制
var verifyHandler = function (token, tokenSecret, profile, done) {
process.nextTick(function () {

    //check if the user exist or not
    var uid=profile.id;

    User.findOne({uid:profile.id}).done(function(err,user){
       if(user)
       {
        console.log('found');
        //done(null,user);
       }
       else
       {
        console.log('user does not exists');
       }
     });
   };

奇怪的是,它不能在model.Where中搜索,我做错了吗?

EN

回答 1

Stack Overflow用户

发布于 2014-04-23 20:15:23

我终于弄明白了,我希望它能帮助任何有同样问题的MySQL的人。1.在您的用户模型中,uid数据类型应该是字符串,而不是INTEGER.Please确保您对VARCHAR表结构进行了相同的更改。2.将middleware.js verifyHandler更改为此(省略parseInt)

代码语言:javascript
复制
var passport = require('passport')
, GitHubStrategy = require('passport-github').Strategy
, FacebookStrategy = require('passport-facebook').Strategy
, GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;

var verifyHandler = function (token, tokenSecret, profile, done) {
process.nextTick(function () {

    User.findOne({uid: profile.id}).done(function (err, user) {

            if (user) {
               return done(null, user);

            } else {



                var data = {
                    provider: profile.provider,
                    uid: profile.id,
                    name: profile.displayName
                };

                if(profile.emails && profile.emails[0] && profile.emails[0].value) {
                    data.email = profile.emails[0].value;
                }
                if(profile.name && profile.name.givenName) {
                    data.firstname = profile.name.givenName;
                }
                if(profile.name && profile.name.familyName) {
                    data.lastname = profile.name.familyName;
                }

                User.create(data).done(function (err, user) {
                        return done(err, user);
                    });

          } 

        });               


});
};

passport.serializeUser(function (user, done) {
done(null, user.uid);
});

passport.deserializeUser(function (uid, done) {
User.findOne({uid:uid}).done(function (err, user) {
    done(err, user)
});
});
module.exports = {

// Init custom express middleware
express: {
    customMiddleware: function (app) {

        passport.use(new FacebookStrategy({
                clientID: "****",
                clientSecret: "********",
                callbackURL: "http://localhost:1337/auth/facebook/callback"
            },
            verifyHandler
        ));


        app.use(passport.initialize());
        app.use(passport.session());

    }
}

};

希望这对某个out.Cheers有帮助!

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

https://stackoverflow.com/questions/23028612

复制
相关文章

相似问题

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