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

标签 node.js sails.js passport.js

我需要 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 ':函数(请求,资源){ passport.authenticate('facebook', {failureRedirect: '/login', scope: ['email','publish_stream'], display:'popup' }, 功能(错误,用户){

    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>

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

最佳答案

一个解决方案是在这里找到 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?

关于node.js - passport.js 使用 sails.js 验证弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21475762/

相关文章:

node.js - Passport js 无法跨域维护 session

node.js - NodeJS注销所有用户 session

javascript - 为什么 Node.js 中的异步函数不是异步的?

javascript - Sequelize.js - 关联,2 个表

javascript - 如何使用 sails.js 自定义颜色记录器

html - node.js:有没有办法将 HTML 放入 i18n-node JSON 翻译文件中?

javascript - 每个请求使用不同的 cookie 域进行快速 session ?

javascript - ReactJS 与 NodeJS - 为什么我需要创建两者?

javascript - sails.js ejs jquery 包含麻烦

javascript - Angular http post 数据对象没有被 Node 服务器视为对象