如何使用url在angularjs应用程序中自动登录

时间:2016-07-05 15:51:56

标签: angularjs passport.js

任何人都可以说我如何使用angularjs 1.x自动登录。我将发送带有网址的电子邮件,当他们点击该网址时,它应该自动转发到主页。

网址将包含电子邮件和加密密码:

http://localhost:8080/login/amg1.2.3@outlook.com/ $ 2A $ 08 $ cZPWmzta7Gn9Mj14r7zGWeMPKNKkkg8JS3gWNL2fQaFuBwrhgKQC

点击此网址会将我重定向到主页,而不会显示任何登录页面。 我使用护照登录功能。

你能解释一下我是如何使用护照和这样的表格发布的吗

app.get('/login/:email/:pwd', function(req, res) {
  console.log(req.params.email);
  console.log(req.params.pwd);
  var request = require('request');
  request.post({
    headers: {'content-type' : 'application/x-www-form-urlencoded'},
    url:     'http://localhost:8080/login/',
    form:    { email: req.params.email,password:req.params.pwd }
  }, function(error, response, body){
    console.log(error);  
    console.log(body);
    console.log(response);
  });
});

请检查一下我的目标,告诉我如何改进代码gist.github.com/agupta330/0fb55b50eecf4b1305ebfe15869b295d

1 个答案:

答案 0 :(得分:0)

它与angular无关,因为它是服务器端。

您不应使用加密密码,因为您的链接永不过期。最好生成随机密钥并将其存储在数据库中,就像使用会话ID一样。

如果用户点击该链接,该密钥有效且未过期,您将生成一个新会话,并将会话cookie与redict一起发送到您的角度页面给用户。

对于角度页面,您不必更改任何内容,因为用户似乎正常登录(使用cookie中的会话)