这是我的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一起工作。
答案 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调用。