使用sydjs作为书籍以使一切正常运作
我尝试通过api:
通过POST请求注册用户/ API /应用程序/注册的电子邮件
每当我发送只有电子邮件和传递的数据时 - 一切正常。如果我尝试添加名称参数 - 它总是失败。 在前端注册工作应该
将数据发送为:
let parameters = [
"email": "\(email)",
"password": "\(password)",
"name": [
"first": "\(firstname)",
"last": "\(lastname)"
]
]
也许任何人都知道为什么它不能与名字一起使用? THX。
答案 0 :(得分:0)
它不起作用,因为Keystone中的登录请求需要_CSRF令牌验证,您需要将其作为参数提供。
一个示例是首先向您的登录页面发出GET请求(CSRF令牌将在HEADER响应中),保存它,然后让您的登录请求传递在前一个请求中获得的CSRF令牌。
这将有所帮助KeystoneJS signin
答案 1 :(得分:0)
我实现了针对keystone(v4.0.0-beta.5)的REST-API的登录。在客户端,我选择npm request。我启用了请求的Cookie功能(配置选项request.defaults({ jar: true });
)。
登录包含两个单独的请求:
包含带有凭据的简单JSON正文的POST请求:
{
email: 'user@yourkeystoneapp.com',
password: 'yourpassword'
}
代码示例:
// enable cookies
request.defaults({
jar: true
});
// first request to obtain the cookie
request('https://www.yourkeystoneapp.com/signin', {/* some options */});
// second request to POST your credentials
var loginOptions = {
method: 'POST',
url: 'https://www.yourkeystoneapp.come/api/session/signin',
headers: {
'content-type': 'application/json',
'accept': 'application/json'
},
body: JSON.stringify({
email: 'user@yourkeystoneapp.com',
password: 'yourpassword
})
};
// issue POST request.
request(loginOptions);
// You are now logged in
如果您使用npm request
,就像我一样,您必须采取一些措施来同步您发出的请求,因为npm request
是异步工作的。 1}}的API及其回调函数是必须的。