2016-08-16 51 views
0

我正在使用我的應用程序的後端FOS用戶包,FOS Rest包和FOS Oauth包。這些工作正常。現在我想創建一個API,允許我的用戶的應用程序在不使用舊密碼字段的情況下更改其密碼。symfony 2/3:如何通過API重置密碼?

我在互聯網上搜索,但我還沒有找到關於如何通過API或代碼更改密碼,但始終沒有old_password字段的文檔/網頁。

如果不存在︰如果我創建一個API(通過$請求)密碼和password_confirm我怎麼能驗證它?我只找到需要舊密碼字段的文檔。

謝謝。

+0

[使用userManager的密碼更新沒有舊密碼的示例](http://stackoverflow.com/questions/15042988/change-password-of-another-user-using-fosuserbundle) – Carlos

+0

嗨,感謝評論,但該代碼的第一行(我在寫我的帖子之前已經看到)是「如果你想要一個管理員改變另一個用戶的密碼」,但在我的帖子中,我寫了「允許我的用戶的應用程序更改密碼」...沒有管理員。 – ZioBudda

回答

1
$user->setPlainPassword($new); 
$this->get('fos_user.user_manager')->updatePassword($user); 
$um->updateUser($user); 

我在生產環境中運行。與其他提議的解決方案非常相似。 FosUserBundle不檢查執行此操作的權限,這是您在控制器或自定義管理員級別的責任。