ในบทความนี้ เราจะมาดูว่าแพลตฟอร์มไม่มีโค้ดของ AppMaster.io แก้ปัญหาการเข้าถึงข้อมูลสำหรับผู้ใช้แอปพลิเคชันได้อย่างไร
มันเกิดขึ้นโดยการแนะนำบทบาทต่างๆ เช่น ผู้ใช้ ผู้ดูแล ผู้ดูแลระบบ และข้อกำหนดอื่นๆ โซลูชันนี้ให้ความยืดหยุ่นมากขึ้นภายในแอปพลิเคชันที่คุณสร้างขึ้น และควบคุมการเข้าถึงข้อมูลและฟังก์ชันการทำงานภายในแอปพลิเคชันที่สร้างขึ้น
บทความนี้จะเป็นประโยชน์สำหรับทุกคนที่ต้องการเจาะลึกฟังก์ชันการทำงานของแพลตฟอร์ม AppMaster.io และดูความสามารถของแพลตฟอร์มในแง่ของการตั้งค่าสำหรับการเข้าถึงข้อมูลตามบทบาท
Module Auth โดย AppMaster.io
การลงทะเบียนในแอปพลิเคชันที่ประกอบบนแพลตฟอร์มของเรานั้นแสดงโดย โมดูล Auth ช่วยให้คุณสร้างและแก้ไขกลุ่มผู้ใช้และเข้าถึงสิทธิ์ของพวกเขาได้ โมดูล การตรวจสอบสิทธิ์ได้รับการติดตั้งล่วงหน้าในโปรเจ็กต์เมื่อสร้างขึ้น
การตั้งค่าโมดูล Auth ที่ใช้ได้:
SignUp Groups — รายชื่อกลุ่มผู้ใช้ที่สามารถลงทะเบียนได้
ลง ทะเบียน — รวมถึงความสามารถในการลงทะเบียนในแอปพลิเคชัน
หมดเวลาเซสชัน (นาที ) — เวลาหลังจากที่เซสชันของผู้ใช้ปัจจุบันจะสิ้นสุดลงหากผู้ใช้ไม่ได้ใช้งาน (เป็นนาที) ค่าเริ่มต้นคือ 60 นาที
ความล่าช้าในการเข้าสู่ระบบล้มเหลว (เป็นมิลลิวินาที) — เวลาล่าช้าสำหรับการตอบสนองของเซิร์ฟเวอร์ในกรณีที่พยายามเข้าสู่ระบบไม่สำเร็จ (เป็นมิลลิวินาที) ค่าเริ่มต้นคือ 0 ms;
ต้องมีการยืนยันอีเมล — ตัวเลือกที่เกี่ยวข้องกับการยืนยันผ่านอีเมลหากเปิดใช้งาน
Signed-Up User Active — ตั้งค่าแอ็ตทริบิวต์ แอ็คทีฟ เป็น True สำหรับผู้ใช้ที่ลงทะเบียนแต่ละราย
กลุ่ม — ให้คุณสร้างและแก้ไขกลุ่มผู้ใช้
AppMaster.io ใช้ Data Model Designer เพื่อทำงานกับโมเดล
เซสชันผู้ใช้และผู้ใช้ เป็นสองโมเดลที่สร้างขึ้นโดยอัตโนมัติใน Data Model Designer ฟิลด์โมเดลข้อมูลที่ติดตั้งล่วงหน้าไม่สามารถแก้ไขหรือลบได้ แต่สามารถเพิ่มฟิลด์ใหม่ได้
สำหรับโมเดลเหล่านี้ กลุ่มของกระบวนการทางธุรกิจ (BP) จะถูกสร้างขึ้นโดยอัตโนมัติเช่นกัน
BPs ที่สร้างขึ้นโดยอัตโนมัติที่เกี่ยวข้องกับเซสชันของผู้ใช้และผู้ใช้
- รุ่นผู้ใช้
DB: ลบผู้ใช้ — ลบผู้ใช้วัตถุจากฐานข้อมูลผ่าน ID;
DB: Update User — รีเซ็ตฟิลด์ทั้งหมดของบล็อก User-object ที่ส่งผ่านไปยังอินพุตในฐานข้อมูลและอัพเดตตามค่าที่ระบุ (หากต้องการเปลี่ยนเฉพาะฟิลด์ที่ระบุ DB: Patch User block จะถูกใช้);
DB: Create User — เก็บไว้ในฐานข้อมูลและส่งคืนวัตถุ User ที่กำหนด (เพื่อสร้างจากฟิลด์ที่กำหนดให้ใช้บล็อก Make User);
DB: Soft Delete User — อัปเดตแอตทริบิวต์ DeletedAt บนวัตถุ User และปล่อยไว้ในฐานข้อมูล
ฐานข้อมูล: ลบผู้ใช้จำนวนมาก — รับอาร์เรย์ของ ID (รหัส) ของวัตถุผู้ใช้ที่จะถูกลบออกจากฐานข้อมูลเป็นอินพุต
fail_ids — อาร์เรย์ของ ID ผู้ใช้ที่จะไม่ถูกลบ
DB: Patch User — อัพเดตฟิลด์ที่ระบุของอ็อบเจ็กต์ User ในฐานข้อมูล (ในการรีเซ็ตฟิลด์ทั้งหมด ให้ใช้ DB: Update User block);
DB: ค้นหาผู้ใช้ — ค้นหาออบเจ็กต์ผู้ใช้ตั้งแต่หนึ่งรายการขึ้นไปในฐานข้อมูลตามฟิลด์และส่งคืน
DB: GetOne User — ค้นหาวัตถุ User ในฐานข้อมูลด้วย ID และส่งคืน
ขยายผู้ใช้ — ส่งคืนฟิลด์ทั้งหมดของออบเจ็กต์ผู้ใช้ที่เลือก
Make User — สร้าง User object ใหม่ในหน่วยความจำจากฟิลด์ที่กำหนดและส่งคืน (หากต้องการบันทึกวัตถุที่สร้างขึ้นในฐานข้อมูล ให้ใช้ DB: Create User block);
- โมเดลเซสชันผู้ใช้
DB: ลบ User Session — ลบ User Session object ออกจากฐานข้อมูลโดย ID ที่ส่งผ่าน
DB: อัปเดตเซสชันผู้ใช้ — รีเซ็ตฟิลด์ทั้งหมดของออบเจ็กต์ User Session ที่ส่งผ่านไปยังบล็อกอินพุตในฐานข้อมูลและอัปเดตตามค่าที่ระบุ (หากต้องการเปลี่ยนเฉพาะฟิลด์ที่ระบุ ให้ใช้ DB: Patch User Session);
DB: Create User Session — เก็บไว้ในฐานข้อมูลและส่งคืนวัตถุ User Session ที่กำหนด (เพื่อสร้างจากฟิลด์ที่กำหนด ให้ใช้บล็อก Make User Session);
DB: Soft Delete User Session — อัปเดตแอตทริบิวต์ DeletedAt ของวัตถุ User Session และปล่อยไว้ในฐานข้อมูล
DB: Bulk Delete User Session — ยอมรับชุด ID ของออบเจ็กต์ User Session ที่จะถูกลบออกจากฐานข้อมูลเป็นอินพุต
fail_ids — อาร์เรย์กำหนดชุดของ ID ที่จะไม่ถูกลบ;
DB: Patch User Session — อัพเดตฟิลด์ที่ระบุของอ็อบเจ็กต์ User Session ในฐานข้อมูล (ในการรีเซ็ตฟิลด์ทั้งหมด ให้ใช้ DB: Update User Session block);
DB: ค้นหา User Session — ค้นหาออบเจ็กต์ User Session อย่างน้อยหนึ่งรายการในฐานข้อมูลตามฟิลด์และส่งคืน
DB: GetOne User Session — ค้นหาออบเจ็กต์ User Session ในฐานข้อมูลด้วย ID และส่งคืน
ขยาย User Session — ส่งคืนฟิลด์ทั้งหมดของออบเจ็กต์ User Session ที่เลือก
Make User Session — สร้าง User Session ใหม่ในหน่วยความจำจากฟิลด์ที่กำหนดและส่งคืน (หากต้องการบันทึกวัตถุที่สร้างขึ้นในฐานข้อมูล ให้ใช้ DB: Create User Session block);
- โมดูลการตรวจสอบสิทธิ์
รับรองความถูกต้อง : สร้าง Auth Token — สร้างโทเค็นการอนุญาต (Auth Token) ตามความยาวที่กำหนด
รับรองความถูกต้อง: การลงทะเบียน — ลงทะเบียนผู้ใช้ใหม่
Auth: Authorization — ตรวจสอบว่ามี Auth Token อยู่ในระบบและส่งคืนผู้ใช้ที่เกี่ยวข้องหรือไม่
Auth: Authentification — ตรวจสอบการเข้าสู่ระบบและรหัสผ่านของผู้ใช้และส่งคืนโทเค็นการตรวจสอบสิทธิ์
Auth: ออกจากระบบ — ยอมรับ Auth Token และยุติเซสชันผู้ใช้ปัจจุบัน
รับรองความถูกต้อง: รับผู้ใช้ปัจจุบัน — ส่งคืนข้อมูลของผู้ใช้ปัจจุบัน
Auth: ลบผู้ใช้ออกจากกลุ่ม — ลบผู้ใช้ออกจากกลุ่มที่ระบุโดย ID ของเขา (กำหนดในการตั้งค่าของโมดูล Auth);
รับรองความถูกต้อง: เพิ่มผู้ใช้ในกลุ่ม — เพิ่มผู้ใช้ในกลุ่มผู้ใช้ที่ระบุด้วย ID (กำหนดในการตั้งค่าโมดูลการตรวจสอบสิทธิ์);
รับรองความถูกต้อง: รหัสผ่านแฮช — แปลงสตริงรหัสผ่านเป็นแฮช
รับรองความถูกต้อง: กู้คืนรหัสผ่าน — ยอมรับชื่อผู้ใช้และรหัสผ่านใหม่ของผู้ใช้ ดังนั้นจึงทำการรีเซ็ต
รับรองความถูกต้อง: เปลี่ยนรหัสผ่าน — แทนที่รหัสผ่านผู้ใช้ปัจจุบันด้วยรหัสผ่านใหม่
รับรองความถูกต้อง: รหัสผ่านโพรบ — การตรวจสอบรหัสผ่านและการจับคู่แฮช
ปลายทางของโมดูลการตรวจสอบสิทธิ์และโมเดลผู้ใช้และเซสชันผู้ใช้จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อสร้างโปรเจ็กต์
โมดูลการตรวจสอบสิทธิ์
ประเภทคำขอ | ปลายทาง | เชื่อมต่อ BP |
---|---|---|
/ออกจากระบบ/ | รับรองความถูกต้อง: ออกจากระบบ | |
/รับรองความถูกต้อง/ | รับรองความถูกต้อง: รับรองความถูกต้อง | |
/ลงทะเบียน/ | รับรองความถูกต้อง: การลงทะเบียน | |
/ยืนยัน/ | รับรองความถูกต้อง: การลงทะเบียน | |
/ผู้ใช้/เปลี่ยนรหัสผ่าน | รับรองความถูกต้อง: เปลี่ยนรหัสผ่าน | |
/ผู้ใช้/กู้คืนรหัสผ่าน/ | รับรองความถูกต้อง: กู้คืนรหัสผ่าน | |
/ประวัติผู้ใช้/ | รับรองความถูกต้อง: การอนุญาต |
ผู้ใช้
ประเภทคำขอ | ปลายทาง | เชื่อมต่อ BP |
---|---|---|
/ผู้ใช้/:id/ | DB: อัปเดตผู้ใช้ | |
/ผู้ใช้/:id/ | DB: ลบผู้ใช้ | |
/ผู้ใช้/:id/ | ฐานข้อมูล: ผู้ใช้ GetOne | |
/ผู้ใช้/ | DB: ค้นหาผู้ใช้ | |
/ผู้ใช้/:id | DB: ผู้ใช้แพตช์ | |
/ผู้ใช้/ | ฐานข้อมูล: สร้างผู้ใช้ |
เซสชันผู้ใช้
ประเภทคำขอ | ปลายทาง | เชื่อมต่อ BP |
---|---|---|
/user-session/:id/ | DB: ลบเซสชันผู้ใช้ | |
/user-session/:id/ | DB: เซสชันผู้ใช้ GetOne | |
/ผู้ใช้-เซสชัน/ | DB: ค้นหาเซสชันผู้ใช้ | |
/user-session/:id/ | DB: เซสชันผู้ใช้แพตช์ | |
/ผู้ใช้-เซสชัน/ | DB: สร้างเซสชันผู้ใช้ | |
/user-session/:id/ | DB: อัปเดตเซสชันผู้ใช้ |
Auth Token ถูกใช้เป็นโทเค็นของเซสชันปัจจุบันของผู้ใช้ที่ได้รับอนุญาต ในเว็บแอปพลิเคชัน BP เป็นไปได้ที่จะโต้ตอบกับโทเค็นนี้:
- Get Auth Token ส่งคืน Auth ของเซสชันผู้ใช้ที่รับรองความถูกต้องปัจจุบัน
- Set Auth Token จะเขียนทับ Auth Token ของเซสชันปัจจุบันของผู้ใช้ที่ได้รับอนุญาต
- Remove Auth Token ลบ Auth Token เซสชันปัจจุบันของผู้ใช้ที่ได้รับอนุญาต
ตัวอย่างแสดงวิธีการรับผู้ใช้ปัจจุบัน
ในการดำเนินการนี้ ให้ไปที่แท็บตรรกะทางธุรกิจแล้วลาก Auth: รับบล็อกผู้ใช้ปัจจุบัน
ถัดไป จุดปลายทางจะถูกสร้างขึ้นสำหรับ BP ที่สร้างขึ้น ซึ่งจะใช้เพื่อติดต่อกับเซิร์ฟเวอร์เพื่อรับวัตถุของผู้ใช้ปัจจุบัน
เลือกกลุ่มผู้ใช้ในส่วนปลายทาง และสร้างวิธีการขอ GET สำหรับกระบวนการที่สร้างขึ้นใหม่เพื่อรับผู้ใช้ปัจจุบัน
ในเว็บแอปพลิเคชัน BP ให้ส่งคำขอไปยังปลายทางที่สร้างขึ้น (คำขอเซิร์ฟเวอร์ GET /user_current) เพื่อรับผู้ใช้ปัจจุบัน
กลุ่มและการอนุญาต
กลุ่มผู้ใช้ถูกสร้างขึ้นในการตั้งค่าของโมดูลการตรวจสอบสิทธิ์ หากต้องการไปที่การตั้งค่าโมดูล คุณต้องเปิดส่วนโมดูลและคลิกที่การ์ดของโมดูลที่เกี่ยวข้อง
แท็บกลุ่มประกอบด้วยรายการกลุ่มที่มีอยู่ทั้งหมด คลิกเพิ่มองค์ประกอบใหม่เพื่อสร้างกลุ่มผู้ใช้ใหม่ ในหน้าต่างโมดอลใหม่ คุณสามารถปรับแต่งกลุ่ม เพิ่มคำอธิบาย ไอคอน ไอคอนและสีป้ายกำกับ และแท็ก
หากต้องการแก้ไขกลุ่มผู้ใช้ที่มีอยู่ คุณต้องไปที่การตั้งค่าของโมดูลการตรวจสอบสิทธิ์ด้วย ในการดำเนินการนี้ ให้ไปที่ส่วน โมดูล และคลิกที่การ์ดของโมดูลที่เกี่ยวข้อง ถัดไป ในแท็บ Groups จะมีรายชื่อกลุ่มให้เลือก หากต้องการแก้ไข คุณต้องคลิกที่ไอคอนการตั้งค่า ในหน้าต่างโมดอลใหม่ คุณสามารถปรับแต่งกลุ่ม เปลี่ยนคำอธิบาย ไอคอน ไอคอนและสีป้ายกำกับ และแท็ก
ในการเปลี่ยนสิทธิ์ของการอ่าน/เขียนรายการในฐานข้อมูลสำหรับกลุ่มผู้ใช้บางกลุ่ม จะใช้ Middleware ของโมดูล Auth
ในส่วนปลายทาง ให้เลือกปลายทางที่คุณต้องการเปลี่ยนแปลงสิทธิ์ในการอ่าน/เขียน คลิกที่ปุ่มการตั้งค่าในปลายทางที่ต้องการและไปที่แท็บมิดเดิลแวร์ในหน้าต่างโมดอลที่เปิดขึ้น ถัดไป โดยคลิกที่แก้ไขการตั้งค่าในบรรทัดเดียวกับ Token Auth Middleware ตั้งค่าสิทธิ์การเข้าถึง
การเข้าถึงหน้าในเว็บแอปพลิเคชัน: คุณต้องไปที่เว็บแอปพลิเคชันและคลิกที่ปุ่มการตั้งค่าของหน้าที่คุณต้องการจำกัดการเข้าถึง
ในฟิลด์ แสดงสำหรับกลุ่ม คุณต้องเลือกรายชื่อกลุ่มผู้ใช้ที่จะได้รับอนุญาตให้ดูหน้านี้ โดยค่าเริ่มต้น ฟิลด์จะว่างเปล่า และอนุญาตให้ผู้ใช้ทุกหมวดหมู่เข้าถึงได้
บทสรุป
การเข้าถึงข้อมูลตามบทบาทเป็นวิธีที่สะดวกในการจัดระเบียบกระแสข้อมูลสำหรับกลุ่มผู้ใช้เฉพาะ ด้วยแพลตฟอร์มที่ไม่มีโค้ด AppMaster.io คุณสามารถทดสอบคุณลักษณะนี้ได้ในการทดลองใช้
หากคุณประทับใจกับฟังก์ชันนี้ ให้ใช้แผน Professional ของเรา ซึ่งรวมถึงคุณลักษณะนี้ การส่งออกไฟล์ไบนารี การสำรองข้อมูลปกติ การถ่ายโอนโครงการ และอื่นๆ อีกมากมาย เรากำลังรอคุณอยู่บนแพลตฟอร์ม AppMaster.io เพื่อใช้งานแม้กระทั่งโครงการที่กล้าหาญที่สุดของคุณ