尝试登录任何用户时,会出现以下POST错误:
XMLHttpRequest cannot load https://api.stormpath.com/v1/applications/[APP_HREF]/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 401.
在我的server.js文件中,我提出了以下内容:
var express = require('express');
var stormpath = require('express-stormpath');
var cors = require('cors');
var app = express();
app.use(stormpath.init(app, {
apiKey: {
id: 'xyz',
secret: 'abc' // Using the unsafe inline option for example purposes
},
application: {
href: `[APP_HREF]`
},
web: {
produces: ['application/json']
},
debug: 'info'
}));
app.use(cors({
origin: 'http://localhost:8080',
credentials: true
}));
app.post('/', stormpath.loginRequired, function (req, res) {
function writeError(message) {
res.status(400);
res.json({ message: message, status: 400 });
res.end();
}
});
app.on('stormpath.ready', function () {
var server = app.listen(process.env.PORT, function() {
try {
process.send('CONNECTED');
} catch(e) {}
});
});
在我的login.jsx文件中,我已经包含:
login: function(e) {
e.preventDefault();
e.stopPropagation();
this.serverRequest = $.post('https://api.stormpath.com/v1/applications/[APP_HREF]/login',
{
"username": document.getElementById("email").value,
"password": document.getElementById("pass").value
}, function (result) {
console.log(result);
});
我也保存了我的stormpath.yml文件。
我没有使用React-Stormpath,因为我已经为登录和注册创建了我的视图。看起来我只需要使用Stormpath访问REST API,但我不确定需要添加什么才能验证API密钥。
在实际的login.jsx文件中,我是否必须发送ID:SECRET对以及POST请求的一部分?
答案 0 :(得分:2)
我在你的login.jsx
中看到你试图直接发布到Stormpath REST API,但不幸的是,这还不可能。相反,您将发布到Express服务器,然后它将与Stormpath通信。
您的Express服务器中已经有express-stormpath
,因此您只需将登录表单发布到/login
,Stormpath将负责其余的工作:)
如果您遇到任何问题,请告诉我们!仅供参考,我们将添加一个无服务器"功能很快,您可以在此处关注:http://ideas.stormpath.com/ideas/IAM-I-59