首页 文章

passport.js使用sails.js验证弹出窗口

提问于
浏览
3

我需要在passport.js身份验证方面提供帮助 . passort.js真实的工作正常 . 但我不知道如何在弹出窗口中创建身份验证登录 . 后端的所有身份验证过程函数 .

请帮我 .

'linkedin': function(req, res) {


           passport.authenticate('linkedin', {failureRedirect: '/login', scope: ['r_basicprofile', 'r_emailaddress']},
function(err, user) {
            req.logIn(user, function(err) {
        if (err) {
            // console.log(err);
            res.view('500');
            return;
        }
        req.session.user = user;
        return res.redirect('/user');
    });
})(req, res);

},'facebook':function(req,res){passport.authenticate('facebook',{failureRedirect:'/ login',scope:['email','publish_stream'],display:'popup'},function(错误,用户){

req.logIn(user, function(err) {
        if (err) {
            throw err;
            res.view('500');
            return;
        }
        req.session.user = user;
        if (p) {

            //write the post project function
        }

        return res.redirect('/user');
    });
})(req, res);

},

这是我的登录页面

<form  action ="/auth/linkedin" method = "POST" class="columns small-12 iconized" >
         <input type="hidden" value="test messge" name="title">    
           <button type="submit"  class="icon-linkedin">Linkedin</button>
      </form>

请帮助我如何调整窗口大小 .

1 回答

  • 0

    一个解决方案是jquery.lightbox_me.js在这里找到http://www.freshdesignweb.com/demo/index.php?p=1379320109

    请按照以下步骤操作:

    1)下载源代码,并将.js文件复制到assets / js,并将.css文件复制到assets / style

    2)将您的HTML代码更改为

    <button id="loginBtn" class="btn btn-success btn-med">Login</button>
    
     <form  id="loginForm" action ="/auth/linkedin" method = "POST" class="columns small-12 iconized" display: none; >
         <input type="text" value="test messge" name="title">    
           <button type="submit"  class="icon-linkedin">Linkedin</button>
      </form>
    
      <script>
    $('#loginBtn').click(function(e) {
        $('#loginForm').lightbox_me({
            centered: true, 
            onLoad: function() { 
                $('#loginForm').find('input:first').focus()
            }
        });
        e.preventDefault();
    });
      </script>
    

    3)这应该可以解决问题 . 但是最终如果你将js脚本保留在html / ejs文件之外最好,所以事情会更整洁 .

    由于Sails附带了ejs-locals,我会将标签内的内容放在一个单独的文件中,然后调用<%block ...%> . 查看此页面以获取更多信息:Sails.js - How to inject a js file to a specific route?

相关问题