我正在使用express-stormpath来处理我的快递应用程序中的用户管理。我正在使用stormpath的默认登录视图和方法,只需要电子邮件和密码。但是,我不知道问题是否真的是由于stormpath。在测试一些CRUD路由时,我确信我输入的是正确的凭据,但身份验证失败。嗯,它并没有完全失败;我获得状态200或302并被重定向回登录页面。
我与httpie一起使用的命令是:
http --verbose -a username@email.com:password localhost:3000/api/users
以上httpie命令的输出是:
对于Postman(Chrome REST客户端),我使用的是Basic Auth帮助程序。
然而,通过网络客户端登录应用程序。
发生了什么事?
这就是我保护路线的方式:
app.use('/', stormpath.loginRequired, routes);
app.use('/api/users', stormpath.apiAuthenticationRequired, users);
答案 0 :(得分:0)
我在Stormpath工作,我应该能够提供帮助。你能告诉我们你是如何保护/api/users
路线的吗?如果要使用基本身份验证,则需要使用stormpath.apiAuthenticationRequired
中间件。
答案 1 :(得分:0)
我是这个图书馆的作者 - 只想进入。
此处的问题是您使用您的用户名和密码进行身份验证 - 这不是我们的API身份验证的工作方式。
您需要做的是首先为您的用户帐户创建一个API密钥,然后使用该密钥进行身份验证。
以下是如何为用户帐户创建API密钥的示例:
req.user.createApiKey(function(err, key) {
res.send('New API key created: id=' + key.id + ' secret=' + key.secret);
});
这将为您的用户配置一个新的API密钥并输出它。
一旦你拥有了API密钥(它分为两部分,ID和一个秘密),你就可以提出如下命令:
http --verbose -a apikeyid:apikeysecret localhost:3000/api/users
希望这有助于=)