คุณไม่ต้องการ JWT อีกต่อไป

คุณไม่ต้องการ JWT อีกต่อไป

ไม่เป็นความลับอีกต่อไปที่การเข้าสู่ระบบ Ethereum จะกลายเป็นมาตรฐานผู้ใช้ในไม่ช้าและรหัสผ่านจะไม่จำเป็นอีกต่อไป อย่างไรก็ตาม การพัฒนา dApp ยังคงเป็นแนวทางที่ค่อนข้างใหม่ และยังคงมีการกำหนดมาตรฐานสำหรับการพัฒนาไว้มากมาย

ตอนนี้นักพัฒนาทั้งหมดยังคงเขียน dApps ด้วยแนวทางปฏิบัติแบบเก่า โดยใช้ JWT เดียวกันสำหรับการตรวจสอบสิทธิ์โดยสัญชาตญาณ ฉันเสนอแนวทางที่แตกต่างออกไปเล็กน้อย

ตัวฉันเองเริ่มพัฒนาd Apps โดยใช้ JWT จากโปรเจ็กต์แรก ฉันรู้สึกว่าการรับรองความถูกต้องกลายเป็นเรื่องยุ่งยากเสมอ และต้องมีบางอย่างซ้ำซ้อนในกระบวนการ หลังจากสองสามโครงการ ฉันตระหนักว่า JWT นั้นซ้ำซ้อน ให้ฉันอธิบายว่าทำไม

ไดอะแกรมนี้แสดงวิธีการตรวจสอบสิทธิ์ในโปรเจ็กต์แรกๆ ของฉัน ที่นี่รูปแบบเกือบจะทำซ้ำขั้นตอนมาตรฐานกับ JWT สิ่งเดียวคือแทนที่จะเข้าสู่ระบบและรหัสผ่านผู้ใช้ส่งลายเซ็น
ทำไมเราต้องได้รับ JWT? ท้ายที่สุด แม้ไม่มีข้อมูล คุณสามารถระบุผู้ใช้ได้อย่างน่าเชื่อถือโดยใช้ที่อยู่จากลายเซ็นของเขา
 
วิธีลดความซับซ้อนมีดังนี้

Userยังคงสร้างลายเซ็น แต่มีExpir-dateอยู่ภายใน ดังนั้นหากผู้โจมตีได้รับลายเซ็น จะไม่มีประโยชน์นาน (เหมือนกับ JWT) นอกจากนี้ ลายเซ็นจะถูกวางไว้ในส่วนหัวการอนุญาตมาตรฐานและประมวลผลบนเซิร์ฟเวอร์โดยใช้ที่อยู่ของผู้ใช้และค้นหาผู้ใช้ในฐานข้อมูล นั่นคือทั้งหมดที่ และคุณไม่จำเป็นต้องอัปเดตคีย์การเข้ารหัสสำหรับ JWT บนเซิร์ฟเวอร์อย่างต่อเนื่อง ดังนั้นโดยทั่วไปแล้ว ความรับผิดชอบจำนวนมากจะตกจากเซิร์ฟเวอร์

เพื่อทำให้โฟลว์นี้ง่ายขึ้นไปอีก ฉันได้สร้างโมดูลโทเค็น web3 ในการติดตั้งให้ใช้คำสั่ง:

$ npm ฉัน web3-token

โมดูลนี้สามารถใช้ได้ทั้งบนเซิร์ฟเวอร์และบนไคลเอนต์

มาดูตัวอย่างกัน โดยเริ่มจากฝั่งไคลเอ็นต์

 

หลังจากเรียกใช้เมธอดsignคุณจะเห็นบางสิ่งที่คล้ายกันนี้ (หากคุณใช้ MetaMask)

อย่างที่คุณเห็น ข้อความนั้นโปร่งใสอย่างสมบูรณ์สำหรับผู้ใช้ เนื่องจากพวกเขาต้องดูว่าพวกเขากำลังเซ็นอะไรอยู่ ดังนั้น แทนที่จะใช้โครงสร้าง JSON เพื่อให้อ่านง่ายขึ้น ฉันจึงตัดสินใจใช้โครงสร้างเดียวกันกับส่วนหัว HTTP

ในเนื้อความของข้อความ เราจะเห็นเวอร์ชันของโทเค็นและวันหมดอายุ

ต่อไป นี่คือสิ่งที่แบ็กเอนด์ (Node.js) ทำกับโทเค็นนี้:

มันค่อนข้างง่าย แค่บรรทัดเดียว และโมดูลก็เข้าควบคุมการเข้ารหัสทั้งหมด เราได้รับที่อยู่ของผู้ใช้อย่างน่าอัศจรรย์จากลายเซ็นและค้นหาในฐานข้อมูลโดยใช้ที่อยู่นี้ ตัวอย่างเช่น คุณอาจให้ NFT แก่ผู้ใช้รายนี้ตามที่อยู่ของเขา

ผลลัพธ์ที่ได้คือวิธีการตรวจสอบผู้ใช้แบบไร้สัญชาติที่สะดวกมาก เหมาะสำหรับ dApps แบบไฮบริด ข้อเสียอย่างเดียวคือมันยากในการทดสอบในบุรุษไปรษณีย์😀

ฉันจะชอบสิ่งที่ต้องการมาตรฐานที่จะออกมานี้ แต่จนแล้วผมเปิดให้วิจารณ์ (หรืออาจจะเป็นคำถาม / ข้อเสนอแนะ) ผ่านโทรเลข@bytesbayหรือจดหมายmiroslaw.shpak@gmail.com ฉันกำลังเตรียมชุดบทความเกี่ยวกับการพัฒนาเกมบล็อคเชนแบบเรียลไทม์ด้วย NFT ดังนั้นโปรดคอยติดตาม

Web3 อยู่ใกล้แค่เอื้อม

Credit : Medium.com

Leave a Comment

Your email address will not be published.