2013-04-20 33 views
1

我在查看另一個問題的答案,關於從客戶端更改userId並跟隨但未獲得預期結果;來自客戶端的Meteor.userId - 正在更改顯示用戶電子郵件,正確的行爲?

Meteor.userId is changeable

我跟着步驟1至5只沒有問題很好,但隨後用Meteor.default_connection.setUserId(「usersfjhjdskfh」設置用戶標識(),以我只是在一個單獨的瀏覽器註銷用戶);

因爲服務器不應該返回數據,所以不會顯示電子郵件地址,而是顯示實際用戶的電子郵件地址。 (但它並沒有帶回黨的信息並在地圖上顯示出來)。

這是預期的行爲,我錯過了在12月份給出的最後一個答案的要點,或者有改變嗎? (我正在運行Meteor 0.6.2,並且從我的示例中刪除了不安全和自動發佈)

回答

1

我假設您想更改用戶的_id,而不是通過ID更改登錄用戶。要更改用戶ID,你很可能這樣做

Meteor.users.update(Meteor.userId(), {$set:{_id:<new Id>}}); 

假設你Meteor.users.allow正確的權限到位。這應該改變當前登錄用戶的_id

上一個問題演示了更改本地客戶端流星函數以及它如何影響服務器時的安全性。 Meteor服務器不信任任何來自客戶端的信息,並且在改變它之前使用允許/拒絕規則進行檢查,無論該當前登錄用戶的數據是什麼。因此用戶確實需要登錄才能在服務器上的mongodb數據庫中更改關於它們的任何數據,以確定允許/拒絕規則。

+0

我的問題是,通過更改客戶端的id,根據最後一個問題,服務器正在返回與該userId關聯的電子郵件地址。讓我再研究一下,以確保我掌握了所有正確的術語。謝謝 :) – 2013-04-20 13:28:36

相關問題