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

3
我需要在passport.js身份验证方面寻求帮助。 passport.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(err, user) { // 这段代码使用Facebook API进行用户身份认证 // 如果失败则重定向到登录页面 // 如果成功则执行回调函数并返回用户信息 }); }

    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 - 如何将js文件注入到特定路由?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接