[英]Strongloop REST API: change password
我想實現一個簡單的“更改密碼”,以便授權用戶可以這樣做。 通過嘗試使用資源管理器,我設法為用戶模型(默認用戶的擴展名)編寫了一個ACL,該ACL允許用戶更改其數據:
{
"principalType": "ROLE",
"principalId": "$owner",
"accessType": "WRITE",
"permission": "ALLOW"
}
但是,當我從資源管理器嘗試使用新憑據的端點PUT / users / {id}時,它默默失敗,即返回ok,但不更改密碼:
請求:
http://localhost:3000/api/users/6?access_token=6CVOuMZCLB8deH7e5t8xJtzDlWjU98WUCRCSGO6zdjW0bhSR6Z20vddl7dIWepF8
數據:
{
"credentials":
{"email":"pepito@example.com", "password": "ppito"}
}
(用戶6已通過身份驗證)。
響應:
{
"realm": null,
"username": "pepito",
"credentials": {
"email": "pepito@example.com",
"password": "ppito"
},
"challenges": null,
"email": "pepito@example.com",
"emailVerified": true,
"verificationToken": "2a9c25fa6e858db5894f98cd3f0be3694041f148781896cb5775ff30da1f367c7843ac4b60013fd47c34c6f1a862a5cabb77cf2807c101da7f2acfcdd8853ec7",
"status": null,
"created": null,
"lastUpdated": null,
"id": 6
}
但是,密碼保持不變(嘗試從瀏覽器注銷/登錄)。
你可以幫幫我嗎?
處理密碼是不同的游戲。 為了更改密碼,請使用以下代碼:
var AccessToken = Customer.app.models.AccessToken;
AccessToken.findById(access_token, function (err, token) {
if (err) cb(err);
else {
Customer.findById(token.userId, function (err, user) {
if (err) {
cb(err);
}
if (user == null || user == undefined) cb(new Error('user is undefined'));
user.updateAttribute('password', password, function (err, user) {
if (err) {
cb(err);
}
cb(null, 'success');
});
});
}
})
updateAttribute是允許您進行更新的內容。
我從未能夠從招搖中更改密碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.