Dapp-Development

“SSO 風格”使用 web3.eth.accounts 登錄應用000

  • December 6, 2018

在通過乙太坊網路交換的數據之上,我的應用程序在經典數據庫中儲存了一些額外的使用者數據(例如縮略圖、顯示偏好、新聞通訊管理等)。

這樣做導致我使用了雙重賬戶系統:一個乙太坊賬戶——我從 web3.eth.accounts 獲得它

$$ 0 $$——還有一個經典的登錄/PW 帳戶。雖然您可以在兩者之間建立各種聯繫,但仍然需要輸入 2 個不同的 PW 並管理兩個帳戶。 所以我想知道是否可以僅使用乙太坊 PW(在 Mist、MetaMask 等中)登錄應用程序:

  • 僅使用 web3.eth.accounts 即可安全登錄經典帳戶$$ 0 $$沒有私服?
  • 是否可以請求使用者許可(如 Metamask 的“接受”提示)但不探勘交易(登錄時間太長)?
  • 還有其他方法可以啟用點擊登錄嗎?

案例是與 MetaMask 一起使用的 Meteor 應用程序,但我想這是一個更普遍的問題。

永遠不應將公​​鑰(例如乙太坊地址)的知識用作身份驗證方法。

公鑰旨在共享,例如以加密貨幣接收付款。如果客戶端可以提供該地址進行身份驗證,那麼知道公共地址的每個人都可以冒充客戶端。

在這種情況下,以下 JavaScript 程式碼應該足以模擬帳戶:

web3 = {eth : { accounts : ["<anExistingPublicAddressInHex>"]}}

在該指令之後,該指令將在不知道私鑰的情況下web3.eth.accounts[0]返回地址。"<anExistingPublicAddressInHex>"

需要使用私鑰來辨識已知公鑰的所有者,例如通過請求隨機數據字元串的簽名。

引用自:https://ethereum.stackexchange.com/questions/12388