如何使用feather js身份验证将客户端连接到服务器?

时间:2017-10-03 22:59:14

标签: javascript node.js reactjs authentication feathersjs

这是我的server.js:

app.use('/users', {
    find(params) {
      return Promise.resolve(Users);
    }
  });
  app.service('authentication').hooks({
  before: {
    create: [
      auth.hooks.authenticate(['local', 'jwt'])
    ]
  }
});
app.service('users').hooks({
  before: {
    create: [
      local.hooks.hashPassword()
    ]
  }
});
/////////////////
app.post('/login', auth.express.authenticate('local', { successRedirect: '/app', failureRedirect: '/login' }));

app.get('/app', (req, res, next) => {
  res.json({ success: true });
});

app.get('/login', (req, res, next) => {
  res.json({ success: false });
});
//////////////

如果我的代码出错,谁能帮助我?我应该在前端的文件中做些什么?我和reactjs一起工作。

2 个答案:

答案 0 :(得分:0)

连接客户端与feathersjs auth。

的方法很少

最简单的方法(React / Angular / ...),不使用特定的库:

  

身份验证网址http://Your_url:port/authentication执行发布请求

<强>车身

  

{email:email,           密码:密码,           策略:&#34;本地&#34;         }

如果您的请求成功,您将获得带有 accessToken 回复。 因此,您应该保存该令牌并使用它来访问受保护的路由。

重要:使用&#34;电子邮件&#34; attr,因为它是默认的auth attr。您可以根据需要进行配置。

希望这有帮助!

答案 1 :(得分:0)

在具有默认身份验证(登录)api的feathersjs中。

网址: http://localhost:8080/authentication

方法:发布

正文: {"strategy": "local","email":"admin@xyz.com","password":"admin123"}

你会得到你期望的令牌。

<强>响应:

{
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6ImFjY2VzcyIsInR5cGUiOiJhY2Nlc3MifQ.eyJ1c2VySWQiOjEsImFjY291bnRJZCI6MSwiaWF0IjoxNTE",
    "code": 200,
    "authentication": "user login successful"
}

之后,将此标记添加到Headers Authorization中等于令牌的所有其他api调用。

enter image description here