簡體   English   中英

Strongloop REST API:更改密碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM