ในแอปพลิเคชันส่วนใหญ่ จำเป็นต้องมีการควบคุมการเข้าถึง ขึ้นอยู่กับบทบาทของผู้ใช้ ในบทเรียนนี้ เราจะดูตัวอย่างการตั้งค่าการควบคุมดังกล่าวสำหรับเว็บแอปพลิเคชัน ในส่วนหนึ่งของงานนี้ คุณจะต้อง:

  • กำหนดบทบาทของผู้ใช้
  • ควบคุมการแสดงรายการเมนูการนำทาง ทั้งนี้ขึ้นอยู่กับบทบาท
  • ทำให้ไม่สามารถนำทางไปยังหน้าที่เฉพาะไม่สามารถเข้าถึงได้

การเตรียมการเบื้องต้น

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


จำเป็นต้องคำนึงถึงตัวเลือกต่าง ๆ ที่ผู้ใช้ที่ได้รับอนุญาตสามารถเข้าสู่แอปพลิเคชันได้:

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

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

บล็อกนี้ถูกเพิ่มเข้าไปในกระบวนการทางธุรกิจของ CheckAuth สำหรับผู้ใช้ที่ได้รับอนุญาต ซึ่งอยู่ในโฟลเดอร์ที่ Prebuilt ไว้ล่วงหน้าในส่วนกระบวนการทางธุรกิจ

ในการเข้าสู่หน้าเข้าสู่ระบบหรือลงทะเบียน บล็อกจะถูกเพิ่มเข้าไปในกระบวนการทางธุรกิจของปุ่มที่เกี่ยวข้อง

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

คุณต้องตั้งค่ากระบวนการทางธุรกิจที่เริ่มทำงานเมื่อมีการแสดง Label ใดๆ (ทริกเกอร์ Label onShow )

  1. Expand User สำหรับข้อมูลเกี่ยวกับชื่อและบทบาทของผู้ใช้
  2. In Array เพื่อตรวจสอบว่าผู้ใช้ที่ระบุอยู่ในกลุ่ม Admins หรือไม่
  3. If-Else . สำหรับความแปรปรวนของการกระทำขึ้นอยู่กับผลการตรวจสอบ
  4. Set Variable (String) . หากต้องการสร้างตัวแปร String ที่มีค่าเป็น " NOT " หากผู้ใช้ไม่ได้เป็นสมาชิกของกลุ่ม Admins หรือเป็นค่าว่างหากเป็น
  5. Concat Strings (Multiple) . เพื่อสร้างวลีที่สมบูรณ์ เช่น “ Hi, Ken. You are NOT Admin
  6. Label Update Properties สำหรับการแสดงวลีนี้ในหน้าสุดท้าย

หากทำทุกอย่างถูกต้องหน้าจอจะมีผลลัพธ์ที่คล้ายกันเมื่อเข้าสู่หน้าต่างๆ

การควบคุมการมองเห็นรายการเมนู

ตอนนี้ได้เวลาไปยังส่วนหลักแล้ว มาสร้างเพจที่มีไว้สำหรับผู้ดูแลระบบเท่านั้น และเพิ่มรายการเมนูที่เกี่ยวข้อง ( Admin Page ) เพื่อไปที่หน้านั้น ทางออกที่ดีที่สุดคือการปิดการมองเห็นตามค่าเริ่มต้น

เมื่อใช้บล็อก Navigate ทาง คุณต้องเลือกเพจที่สร้างขึ้นในพารามิเตอร์ Page และค้นหา ID ของเพจนี้

ในตัวอย่างนี้ มีเพียงหน้าเดียวที่มีการเข้าถึงแบบจำกัด แต่เป็นการดีกว่าที่จะคาดการณ์ตัวเลือกในทันทีเมื่อมีหน้าดังกล่าวหลายหน้า และสร้างตัวแปรแบบอ่านอย่างเดียวส่วนกลางเพื่อจัดเก็บรายการของหน้า

ถัดไป คุณต้องสร้างกระบวนการทางธุรกิจเอง (เรียกว่า Set NavItem Visibility ) เพื่อควบคุมการมองเห็นรายการเมนูการนำทาง

  1. Expand User สำหรับข้อมูลเกี่ยวกับบทบาทของผู้ใช้
  2. In Array เพื่อตรวจสอบว่าผู้ใช้ที่กำหนดอยู่ในกลุ่ม Admins หรือไม่
  3. For each loop ในการรันลูปสำหรับเพจทั้งหมดที่ระบุในตัวแปรโกลบอล
  4. NavItem Update Properties เพื่อควบคุมการเปิดเผยองค์ประกอบ ขึ้นอยู่กับว่าผู้ใช้เป็นผู้ดูแลระบบหรือไม่

ต้องเพิ่มบล็อกของกระบวนการทางธุรกิจที่สร้างขึ้นก่อนที่จะไปที่โฮมเพจในกระบวนการทางธุรกิจของปุ่มเข้าสู่ระบบและลงทะเบียนผู้ใช้ (ก่อนหน้านี้ บล็อก Set Variable ถูกเพิ่มเข้าไปเพื่อบันทึกตัวแปรที่มีข้อมูลเกี่ยวกับผู้ใช้ปัจจุบัน)

การควบคุมการเข้าถึงผ่านลิงค์โดยตรง

สิ่งสุดท้ายที่ต้องทำคือตั้งค่ากระบวนการทางธุรกิจที่ดำเนินการทุกครั้งที่เปิดแอปพลิเคชันโดยทริกเกอร์ “ On app launch ” เช่นเดียวกับขั้นตอนที่แล้ว ให้เพิ่มบล็อก Set NavItems Visibility สำหรับผู้ใช้ที่ผ่านการรับรองความถูกต้อง

นอกจากนี้ จำเป็นต้องให้การป้องกันการเข้าถึงเพจที่ปิดผ่านลิงก์โดยตรง:

  1. In Array (Admin_pages) เพื่อตรวจสอบว่าเพจเป้าหมายอยู่ในรายการเพจสำหรับผู้ดูแลเท่านั้นหรือไม่
  2. If-Else . สำหรับความแปรปรวนของการกระทำขึ้นอยู่กับผลการตรวจสอบ หาก False คุณสามารถไปยังหน้าที่ระบุได้ ในกรณีของ True จำเป็นต้องมีการตรวจสอบสิทธิ์ในการเข้าถึงหน้านี้เพิ่มเติม
  3. Expand User เพื่ออ่านข้อมูลผู้ใช้จากตัวแปรส่วนกลาง User_gv
  4. In Array เพื่อตรวจสอบการเป็นสมาชิกในกลุ่ม Admins
  5. If-Else . เพื่อเลือกการดำเนินการขึ้นอยู่กับการมีสิทธิ์ของผู้ดูแลระบบหรือไม่มีอยู่
  6. Navigate เพื่อไปยังหน้าที่ต้องการหรือเปลี่ยนเส้นทางไปยังหน้าเริ่มต้นในกรณีที่ผู้ใช้ที่ไม่มีสิทธิ์ที่เหมาะสมพยายามเปิดหน้าที่มีไว้สำหรับผู้ดูแลระบบเท่านั้น

หน้าที่เลือกได้รับการปกป้องจากการเข้าถึงโดยไม่ได้รับอนุญาต ในกรณีที่ไม่มีสิทธิ์ สิ่งเหล่านี้จะไม่แสดงในเมนูและไม่สามารถเข้าถึงได้แม้ผ่านลิงก์โดยตรง

สิ่งสำคัญคือต้องจำไว้ว่าการป้องกันการเข้าถึงสำหรับหน้าบางหน้าไม่ได้หมายถึงการป้องกันอัตโนมัติสำหรับปลายทางที่สามารถใช้กับหน้าเหล่านั้นได้ ในการทำเช่นนี้ หากจำเป็น ในการตั้งค่า Middleware Token Auth คุณต้องระบุกลุ่มผู้ใช้ที่มีสิทธิ์เข้าถึงปลายทางที่เลือก

Was this article helpful?

AppMaster.io 101 หลักสูตรความผิดพลาด

10 โมดูล
2 สัปดาห์ที่ผ่านมา

ไม่แน่ใจว่าจะเริ่มต้นที่ไหน? เริ่มต้นด้วยหลักสูตรเร่งรัดสำหรับผู้เริ่มต้นและสำรวจ AppMaster จาก A ถึง Z

เริ่มหลักสูตร
Development it’s so easy with AppMaster!

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่?

แก้ปัญหาด้วยความช่วยเหลือจากผู้เชี่ยวชาญของเรา ประหยัดเวลาและมุ่งเน้นที่การสร้างแอปพลิเคชันของคุณ

headphones

ติดต่อฝ่ายสนับสนุน

บอกเราเกี่ยวกับปัญหาของคุณ แล้วเราจะหาทางแก้ไขให้คุณ

message

ชุมชนแชท

สนทนาคำถามกับผู้ใช้รายอื่นในการแชทของเรา

เข้าร่วมชุมชน