Quickstarters
Feature Overview
How to Build a Backend for Blazor?
35 นาที
บทนำ ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีการสร้างแบ็กเอนด์ที่สมบูรณ์สำหรับแอปพลิเคชัน blazor โดยใช้ back4app เราจะเดินผ่านการรวมฟีเจอร์ที่สำคัญของ back4app เช่น การจัดการฐานข้อมูล, ฟังก์ชัน cloud code, rest และ graphql apis, การตรวจสอบสิทธิ์ผู้ใช้, และการสอบถามแบบเรียลไทม์ (live queries) เพื่อสร้างแบ็กเอนด์ที่ปลอดภัย, ขยายขนาดได้, และแข็งแกร่งที่สื่อสารกับฟรอนต์เอนด์ blazor ของคุณได้อย่างราบรื่น การใช้บริการแบ็กเอนด์ที่แข็งแกร่งของ back4app ร่วมกับ blazor ซึ่งเป็นเฟรมเวิร์ก asp net core สำหรับการสร้าง ui เว็บที่โต้ตอบได้โดยใช้ c# ช่วยให้นักพัฒนาสามารถเร่งการพัฒนาแบ็กเอนด์ได้ ไม่ว่าคุณจะสร้างแอป blazor server หรือแอป blazor webassembly การรวมเข้ากับ back4app อย่างราบรื่นสามารถลดเวลาในการพัฒนาได้อย่างมากในขณะที่ยังคงคุณภาพของตรรกะธุรกิจด้านเซิร์ฟเวอร์ เมื่อสิ้นสุดบทเรียนนี้ คุณจะได้สร้างโครงสร้างแบ็กเอนด์ที่ปลอดภัยซึ่งออกแบบมาสำหรับแอปพลิเคชันเว็บแบบฟูลสแต็กโดยใช้ blazor คุณจะได้รับข้อมูลเชิงลึกเกี่ยวกับวิธีการจัดการการดำเนินการข้อมูล, ใช้การควบคุมความปลอดภัย, และนำฟังก์ชันคลาวด์ไปใช้ ทำให้แอปพลิเคชันเว็บ blazor ของคุณแข็งแกร่งและขยายขนาดได้ ข้อกำหนดเบื้องต้น ในการทำบทเรียนนี้ให้เสร็จสิ้น คุณจะต้องมี บัญชี back4app และโครงการ back4app ใหม่ เริ่มต้นใช้งานกับ back4app https //www back4app com/docs/get started/new parse app หากคุณไม่มีบัญชี คุณสามารถสร้างบัญชีได้ฟรี ทำตามคำแนะนำข้างต้นเพื่อเตรียมโครงการของคุณ สภาพแวดล้อมการพัฒนา blazor พื้นฐาน คุณสามารถตั้งค่านี้ได้โดยการติดตั้ง net sdk เวอร์ชันล่าสุดจาก microsoft https //dotnet microsoft com/download และสร้างโครงการ blazor ใหม่โดยใช้เทมเพลตเช่น dotnet new blazorserver หรือ dotnet new blazorwasm net sdk (เวอร์ชัน 6 หรือสูงกว่า) ติดตั้งแล้ว ตรวจสอบให้แน่ใจว่าคุณมี net sdk สำหรับการสร้างและรันแอป blazor ความคุ้นเคยกับ c# และแนวคิด blazor เอกสารประกอบการใช้งาน blazor https //docs microsoft com/en us/aspnet/core/blazor/?view=aspnetcore 6 0 หากคุณเป็นมือใหม่ใน blazor ให้ตรวจสอบเอกสารอย่างเป็นทางการหรือบทเรียนสำหรับผู้เริ่มต้นก่อนเริ่ม ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นเหล่านี้ก่อนเริ่มเพื่อให้แน่ใจว่าประสบการณ์การสอนที่ราบรื่น ขั้นตอนที่ 1 – การตั้งค่าโครงการ back4app สร้างโครงการใหม่ ขั้นตอนแรกในการสร้างแบ็กเอนด์ blazor ของคุณบน back4app คือการสร้างโครงการใหม่ หากคุณยังไม่ได้สร้างหนึ่ง ให้ทำตามขั้นตอนเหล่านี้ เข้าสู่ระบบบัญชี back4app ของคุณ คลิกที่ปุ่ม “แอปใหม่” ในแดชบอร์ด back4app ของคุณ ตั้งชื่อแอปของคุณ (เช่น “blazor backend tutorial”) เมื่อโปรเจกต์ถูกสร้างขึ้น คุณจะเห็นมันถูกแสดงในแดชบอร์ด back4app ของคุณ โปรเจกต์นี้จะเป็นพื้นฐานสำหรับการตั้งค่าด้านหลังทั้งหมดที่กล่าวถึงในบทแนะนำนี้ เชื่อมต่อกับ parse sdk back4app ขึ้นอยู่กับ parse platform ในการจัดการข้อมูลของคุณ ให้ฟีเจอร์เรียลไทม์ จัดการการตรวจสอบสิทธิ์ของผู้ใช้ และอื่นๆ การเชื่อมต่อแอปพลิเคชัน blazor ของคุณกับ back4app เกี่ยวข้องกับการติดตั้ง parse sdk สำหรับ net และการเริ่มต้นด้วยข้อมูลประจำตัวจากแดชบอร์ด back4app ของคุณ ดึงคีย์ parse ของคุณ ในแดชบอร์ด back4app ของคุณ ให้ไปที่ “การตั้งค่าแอป” หรือ “ความปลอดภัย & คีย์” เพื่อค้นหา application id และ net key คุณจะพบ parse server url (มักอยู่ในรูปแบบ https //parseapi back4app com ) ติดตั้ง parse sdk ในโปรเจกต์ blazor ของคุณ dotnet add package parse เริ่มต้น parse ในแอปพลิเคชัน blazor ของคุณ โดยทั่วไป คุณจะตั้งค่าการเริ่มต้นใน program cs หรือคลาสบริการที่กำหนดเฉพาะ program cs using parse; var builder = webapplication createbuilder(args); // เริ่มต้น parse parseclient initialize(new parseclient configuration { applicationid = "your application id", windowskey = "your dotnet key", server = "https //parseapi back4app com" }); var app = builder build(); // ส่วนที่เหลือของการตั้งค่าของคุณ การตั้งค่านี้ทำให้แน่ใจว่าเมื่อใดก็ตามที่คุณใช้ parse ในแอปพลิเคชัน blazor ของคุณ มันถูกตั้งค่าไว้ล่วงหน้าเพื่อเชื่อมต่อกับ back4app ของคุณโดยเฉพาะ โดยการทำขั้นตอนนี้ให้เสร็จสิ้น คุณได้สร้างการเชื่อมต่อที่ปลอดภัยระหว่างส่วนหน้า blazor ของคุณและแบ็กเอนด์ back4app ซึ่งเปิดทางให้ทำการดำเนินการฐานข้อมูล การจัดการผู้ใช้ และอื่นๆ ขั้นตอนที่ 2 – การตั้งค่าฐานข้อมูล การบันทึกและการค้นหาข้อมูล เมื่อคุณตั้งค่าโปรเจกต์ back4app และรวม parse sdk เข้ากับแอป blazor ของคุณแล้ว คุณสามารถเริ่มบันทึกและเรียกคืนข้อมูลได้ วิธีที่ง่ายที่สุดในการสร้างระเบียนคือการใช้ parseobject คลาส somedataservice cs using parse; using system threading tasks; public class somedataservice { public async task\<parseobject> createtodoitemasync(string title, bool iscompleted) { var todo = new parseobject("todo"); todo\["title"] = title; todo\["iscompleted"] = iscompleted; try { await todo saveasync(); console writeline("todo saved successfully " + todo objectid); return todo; } catch (exception ex) { console writeline("error saving todo " + ex message); return null; } } public async task\<ilist\<parseobject>> fetchtodosasync() { var query = new parsequery\<parseobject>("todo"); try { var results = await query findasync(); console writeline("fetched todo items " + results count); return results; } catch (exception ex) { console writeline("error fetching todos " + ex message); return null; } } } อีกทางเลือกหนึ่ง คุณสามารถใช้ rest api endpoints ของ back4app สำหรับการดำเนินการต่างๆ การออกแบบสคีมาและประเภทข้อมูล ตามค่าเริ่มต้น parse อนุญาตให้ สร้าง schema แบบทันที , แต่คุณยังสามารถกำหนดคลาสและประเภทข้อมูลของคุณในแดชบอร์ด back4app เพื่อควบคุมได้มากขึ้น ไปที่ส่วน “ฐานข้อมูล” ในแดชบอร์ด back4app ของคุณ สร้างคลาสใหม่ (เช่น “todo”) และเพิ่มคอลัมน์ที่เกี่ยวข้อง เช่น ชื่อ (string) และ iscompleted (boolean) back4app ยังรองรับประเภทข้อมูลต่างๆ string , number , boolean , object , date , file , pointer, array, relation , geopoint , และ polygon คุณสามารถเลือกประเภทที่เหมาะสมสำหรับแต่ละฟิลด์ หากคุณต้องการ คุณยังสามารถให้ parse สร้างคอลัมน์เหล่านี้โดยอัตโนมัติเมื่อคุณบันทึกวัตถุจากแอป blazor ของคุณเป็นครั้งแรก back4app มี ai agent ที่สามารถช่วยคุณออกแบบโมเดลข้อมูลของคุณ เปิด ai agent จากแดชบอร์ดแอปของคุณหรือในเมนู อธิบายโมเดลข้อมูลของคุณ ด้วยภาษาที่เข้าใจง่าย (เช่น “กรุณาสร้าง todo app ใหม่ที่ back4app พร้อมกับสคีมาคลาสที่สมบูรณ์ ”) ให้ ai agent สร้าง schema ให้คุณ การใช้ ai agent สามารถช่วยประหยัดเวลาเมื่อคุณตั้งค่าโครงสร้างข้อมูลของคุณและรับประกันความสอดคล้องในแอปพลิเคชันของคุณ ข้อมูลเชิงสัมพันธ์ หากคุณมีข้อมูลเชิงสัมพันธ์ ตัวอย่างเช่น category วัตถุที่ชี้ไปยังหลาย todo รายการ คุณสามารถใช้ pointers หรือ relations ใน parse กระบวนการนี้คล้ายกับ reactjs แต่ใช้วัตถุ net somedataservice cs (ต่อ) public async task\<parseobject> createtaskforcategoryasync(string categoryobjectid, string title) { var todo = new parseobject("todo"); // สร้างพอยเตอร์ไปยังหมวดหมู่ var categorypointer = parseobject createwithoutdata("category", categoryobjectid); todo\["title"] = title; todo\["category"] = categorypointer; try { await todo saveasync(); return todo; } catch (exception ex) { console writeline("เกิดข้อผิดพลาดในการสร้าง task ที่มีความสัมพันธ์กับหมวดหมู่ " + ex message); return null; } } เมื่อทำการค้นหา ให้รวมข้อมูลพอยเตอร์ somedataservice cs (continuation) public async task\<ilist\<parseobject>> fetchtodoswithcategoryasync() { var query = new parsequery\<parseobject>("todo") include("category"); try { var todoswithcategory = await query findasync(); return todoswithcategory; } catch (exception ex) { console writeline("error fetching todos with category " + ex message); return null; } } การค้นหาข้อมูลแบบเรียลไทม์ สำหรับการอัปเดตแบบเรียลไทม์ในแอป blazor server ให้พิจารณาใช้ การเชื่อมต่อ signalr สำหรับการค้นหาข้อมูลแบบเรียลไทม์ แม้ว่า parse net sdk จะรองรับการค้นหาข้อมูลแบบเรียลไทม์ แต่การรวมเข้ากับแอป blazor อาจต้องการการตั้งค่าเพิ่มเติมกับ signalr สำหรับการสื่อสารแบบเรียลไทม์ เปิดใช้งานการค้นหาข้อมูลแบบเรียลไทม์ ในแดชบอร์ด back4app ของคุณภายใต้ การตั้งค่าเซิร์ฟเวอร์ ตรวจสอบให้แน่ใจว่า “การค้นหาข้อมูลแบบเรียลไทม์” เปิดใช้งานอยู่ กำหนดค่าลูกค้าการค้นหาข้อมูลแบบเรียลไทม์ ใน net หากจำเป็น อย่างไรก็ตาม สำหรับแอป blazor การใช้ signalr อาจเหมาะสมกว่าสำหรับการเชื่อมต่อด้านเซิร์ฟเวอร์ เนื่องจากความซับซ้อนในการตั้งค่าการค้นหาข้อมูลแบบเรียลไทม์ภายใน blazor และข้อจำกัดที่อาจเกิดขึ้นของ parse net sdk ใน blazor webassembly คุณอาจต้องดำเนินการบริการด้านเซิร์ฟเวอร์ที่เชื่อมต่อการค้นหาข้อมูลแบบเรียลไทม์ของ parse กับลูกค้า signalr ขั้นตอนที่ 3 – การใช้ความปลอดภัยด้วย acls และ clps กลไกความปลอดภัยของ back4app back4app ให้ความสำคัญกับความปลอดภัยโดยการจัดเตรียม รายการควบคุมการเข้าถึง (acls) และ สิทธิ์ระดับคลาส (clps) ฟีเจอร์เหล่านี้ช่วยให้คุณจำกัดว่าใครสามารถอ่านหรือเขียนข้อมูลได้ตามวัตถุหรือคลาส ทำให้มั่นใจได้ว่าผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่สามารถแก้ไขข้อมูลของคุณ รายการควบคุมการเข้าถึง (acls) acl ถูกนำไปใช้กับวัตถุแต่ละชิ้นเพื่อกำหนดว่าผู้ใช้ บทบาท หรือสาธารณะสามารถดำเนินการอ่าน/เขียนได้หรือไม่ ตัวอย่างเช่น somedataservice cs (acl example) public async task\<parseobject> createprivatetodoasync(string title, parseuser owneruser) { var todo = new parseobject("todo"); todo\["title"] = title; // create an acl granting read/write access only to the owner var acl = new parseacl(owneruser); acl publicreadaccess = false; acl publicwriteaccess = false; todo acl = acl; try { await todo saveasync(); return todo; } catch (exception ex) { console writeline("error saving private todo " + ex message); return null; } } เมื่อคุณบันทึกวัตถุ มันจะมี acl ที่ป้องกันไม่ให้ใครอ่านหรือแก้ไขนอกจากผู้ใช้ที่ระบุ สิทธิ์ระดับคลาส (clps) clps กำหนดสิทธิ์เริ่มต้นของคลาสทั้งหมด เช่น คลาสนั้นสามารถอ่านหรือเขียนได้โดยสาธารณะหรือไม่ หรือเฉพาะบทบาทบางอย่างเท่านั้นที่สามารถเข้าถึงได้ ไปที่แดชบอร์ด back4app ของคุณ , เลือกแอปของคุณ และเปิด ฐานข้อมูล ส่วน เลือกคลาส (เช่น “todo”) เปิดแท็บสิทธิ์ระดับคลาส กำหนดค่าเริ่มต้นของคุณ เช่น “ต้องการการตรวจสอบสิทธิ์” สำหรับการอ่านหรือเขียน หรือ “ไม่มีการเข้าถึง” สำหรับสาธารณะ สิทธิ์เหล่านี้ตั้งค่าพื้นฐาน ในขณะที่ acl จะปรับแต่งสิทธิ์สำหรับวัตถุแต่ละชิ้น โมเดลความปลอดภัยที่แข็งแกร่งมักจะรวม clps (ข้อจำกัดกว้าง) และ acls (ข้อจำกัดที่ละเอียดต่อวัตถุ) สำหรับข้อมูลเพิ่มเติมไปที่ แนวทางความปลอดภัยของแอป https //www back4app com/docs/security/parse security ขั้นตอนที่ 4 – การเขียนและการปรับใช้ cloud functions cloud code เป็นฟีเจอร์ของสภาพแวดล้อม parse server ที่ช่วยให้คุณสามารถรันโค้ด javascript ที่กำหนดเองบนฝั่งเซิร์ฟเวอร์ โดยไม่ต้องจัดการเซิร์ฟเวอร์หรือโครงสร้างพื้นฐานของคุณเอง โดยการเขียน cloud code คุณสามารถขยายแบ็กเอนด์ back4app ของคุณด้วยตรรกะทางธุรกิจเพิ่มเติม การตรวจสอบ ความกระตุ้น และการรวมระบบที่ทำงานอย่างปลอดภัยและมีประสิทธิภาพบน parse server มันทำงานอย่างไร เมื่อคุณเขียน cloud code โดยทั่วไปคุณจะวางฟังก์ชัน javascript ของคุณ ทริกเกอร์ และโมดูล npm ที่จำเป็นใน main js (หรือ app js ) ไฟล์ ไฟล์นี้จะถูกปรับใช้ไปยังโปรเจกต์ back4app ของคุณ ซึ่งจะถูกดำเนินการภายในสภาพแวดล้อมของ parse server เนื่องจากฟังก์ชันและทริกเกอร์เหล่านี้ทำงานบนเซิร์ฟเวอร์ คุณจึงสามารถไว้วางใจให้พวกเขาจัดการตรรกะที่เป็นความลับ ประมวลผลข้อมูลที่ละเอียดอ่อน หรือทำการเรียก api เฉพาะแบ็กเอนด์ กระบวนการที่คุณอาจไม่ต้องการเปิดเผยโดยตรงต่อไคลเอนต์ cloud code ทั้งหมดสำหรับแอป back4app ของคุณทำงานภายใน parse server ที่จัดการโดย back4app ดังนั้นคุณจึงไม่ต้องกังวลเกี่ยวกับการบำรุงรักษาเซิร์ฟเวอร์ การปรับขนาด หรือการจัดเตรียม ทุกครั้งที่คุณอัปเดตและปรับใช้ไฟล์ main js ของคุณ เซิร์ฟเวอร์ parse ที่กำลังทำงานจะได้รับการอัปเดตด้วยโค้ดล่าสุดของคุณ โครงสร้างไฟล์ main js ไฟล์ main js ปกติอาจประกอบด้วย คำสั่ง require สำหรับโมดูลที่จำเป็น (แพ็คเกจ npm, โมดูล node ที่มีอยู่, หรือไฟล์โค้ดคลาวด์อื่น ๆ) การกำหนดฟังก์ชันคลาวด์ โดยใช้ parse cloud define() ทริกเกอร์ เช่น parse cloud beforesave() , parse cloud aftersave() , เป็นต้น โมดูล npm ที่คุณติดตั้ง (ถ้าจำเป็น) main js // main js // 1 import necessary modules and other cloud code files const axios = require('axios'); const report = require(' /reports'); // 2 define a custom cloud function parse cloud define('fetchexternaldata', async (request) => { const url = request params url; if (!url) { throw new error('url parameter is required'); } const response = await axios get(url); return response data; }); // 3 example of a beforesave trigger parse cloud beforesave('todo', (request) => { const todo = request object; if (!todo get('title')) { throw new error('todo must have a title'); } }); ด้วยความสามารถในการติดตั้งและใช้โมดูล npm โค้ดคลาวด์จึงมีความยืดหยุ่นอย่างมาก ทำให้คุณสามารถรวมเข้ากับ api ภายนอก ทำการแปลงข้อมูล หรือดำเนินการตรรกะฝั่งเซิร์ฟเวอร์ที่ซับซ้อนได้ กรณีการใช้งานทั่วไป ตรรกะธุรกิจ ตัวอย่างเช่น การรวมข้อมูลเพื่อการวิเคราะห์หรือทำการคำนวณก่อนที่จะบันทึกลงในฐานข้อมูล การตรวจสอบข้อมูล ตรวจสอบให้แน่ใจว่าฟิลด์บางอย่างมีอยู่หรือผู้ใช้มีสิทธิ์ที่ถูกต้องก่อนที่จะบันทึกหรือลบระเบียน ทริกเกอร์ ทำการกระทำเมื่อข้อมูลเปลี่ยนแปลง (เช่น ส่งการแจ้งเตือนเมื่อผู้ใช้ปรับปรุงโปรไฟล์ของตน) การรวมระบบ เชื่อมต่อกับ api หรือบริการของบุคคลที่สาม การบังคับใช้ความปลอดภัย ตรวจสอบและทำความสะอาดข้อมูลนำเข้าเพื่อบังคับใช้ความปลอดภัยก่อนที่จะดำเนินการที่ละเอียดอ่อน ปรับใช้ฟังก์ชันของคุณ ด้านล่างนี้คือฟังก์ชัน cloud code ที่ง่ายซึ่งคำนวณความยาวของสตริงข้อความที่ส่งจากไคลเอนต์ main js // main js parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); การปรับใช้ผ่าน back4app cli https //www back4app com/docs/local development/parse cli 1 ติดตั้ง cli สำหรับ linux/macos curl https //raw\ githubusercontent com/back4app/parse cli/back4app/installer sh | sudo /bin/bash สำหรับ windows ดาวน์โหลด b4a exe https //github com/back4app/parse cli/releases/download/release 3 3 1/b4a exe ไฟล์จากหน้าการเผยแพร่ 2 กำหนดค่าคีย์บัญชีของคุณ https //www back4app com/docs/local development/parse cli#f cxi b4a configure accountkey 3 ติดตั้งโค้ดคลาวด์ของคุณ unhandled content type b4a deploy การติดตั้งผ่านแดชบอร์ด ในแดชบอร์ดของแอปของคุณ ไปที่ cloud code > functions คัดลอก/วางฟังก์ชันลงใน main js editor คลิก deploy เรียกใช้ฟังก์ชันของคุณ จาก blazor โดยใช้ parse net sdk somedataservice cs (calling function) public async task\<int?> gettextlengthasync(string text) { try { var result = await parsecloud callfunctionasync\<dictionary\<string, object>>("calculatetextlength", new dictionary\<string, object> { { "text", text } }); if(result != null && result containskey("length")) return convert toint32(result\["length"]); return null; } catch(exception ex) { console writeline("error calling cloud function " + ex message); return null; } } คุณยังสามารถเรียกใช้ผ่าน rest หรือ graphql ตามที่แสดงในบทเรียน reactjs ขั้นตอนที่ 5 – การกำหนดค่าการตรวจสอบสิทธิ์ผู้ใช้ การตรวจสอบสิทธิ์ผู้ใช้ใน back4app back4app ใช้ parse user คลาสเป็นพื้นฐานสำหรับการตรวจสอบสิทธิ์ โดยค่าเริ่มต้น parse จะจัดการการเข้ารหัสรหัสผ่าน โทเค็นเซสชัน และการจัดเก็บข้อมูลอย่างปลอดภัย ซึ่งหมายความว่าคุณไม่จำเป็นต้องตั้งค่ากระบวนการรักษาความปลอดภัยที่ซับซ้อนด้วยตนเอง การตั้งค่าการตรวจสอบสิทธิ์ผู้ใช้ ในแอปพลิเคชัน blazor คุณสามารถสร้างผู้ใช้ใหม่ได้ด้วย authservice cs using parse; using system threading tasks; public class authservice { public async task signupuserasync(string username, string password, string email) { var user = new parseuser() { username = username, password = password, email = email }; try { await user signupasync(); console writeline("user signed up successfully!"); } catch (exception ex) { console writeline("error signing up user " + ex message); } } public async task loginuserasync(string username, string password) { try { var user = await parseuser loginasync(username, password); console writeline("user logged in " + user username); } catch (exception ex) { console writeline("error logging in user " + ex message); } } } การจัดการเซสชัน หลังจากการเข้าสู่ระบบที่สำเร็จ parse จะสร้าง โทเค็นเซสชัน ที่ถูกเก็บไว้ในวัตถุผู้ใช้ ในแอป blazor ของคุณ คุณสามารถเข้าถึงผู้ใช้ที่เข้าสู่ระบบอยู่ในขณะนี้ somecomponent razor cs var currentuser = parseuser currentuser; if (currentuser != null) { console writeline("currently logged in user " + currentuser username); } else { console writeline("no user is logged in"); } parse จะจัดการเซสชันที่ใช้โทเค็นโดยอัตโนมัติในพื้นหลัง แต่คุณยังสามารถจัดการหรือเพิกถอนเซสชันเหล่านั้นด้วยตนเอง สำหรับการออกจากระบบ authservice cs (logout) public async task logoutasync() { await parseuser logoutasync(); console writeline("user logged out"); } การรวมเข้าสู่ระบบด้วยโซเชียล back4app และ parse สามารถรวมเข้ากับผู้ให้บริการ oauth ที่นิยม เช่น google หรือ facebook การกำหนดค่าอาจแตกต่างกันและมักจะเกี่ยวข้องกับการตั้งค่าฝั่งเซิร์ฟเวอร์หรือแพ็คเกจเพิ่มเติม โปรดดูที่ เอกสารการเข้าสู่ระบบด้วยโซเชียล https //www back4app com/docs/platform/sign in with apple สำหรับคำแนะนำโดยละเอียด เนื่องจากแอป blazor server ทำงานบน asp net core คุณอาจรวมการเข้าสู่ระบบด้วยโซเชียลโดยใช้ผู้ให้บริการ asp net core identity ร่วมกับ parse เพื่อการตรวจสอบสิทธิ์ที่ราบรื่น การตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน เพื่อเปิดใช้งานการตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน ไปที่การตั้งค่าอีเมล ในแดชบอร์ด back4app ของคุณ เปิดใช้งานการตรวจสอบอีเมล เพื่อให้แน่ใจว่าผู้ใช้ใหม่ยืนยันความเป็นเจ้าของที่อยู่อีเมลของตน กำหนดค่าที่อยู่จาก , เทมเพลตอีเมล และโดเมนที่กำหนดเองของคุณหากต้องการ ฟีเจอร์เหล่านี้ช่วยปรับปรุงความปลอดภัยของบัญชีและประสบการณ์ของผู้ใช้โดยการตรวจสอบความเป็นเจ้าของอีเมลของผู้ใช้และให้วิธีการกู้คืนรหัสผ่านที่ปลอดภัย ขั้นตอนที่ 6 – การจัดการการเก็บไฟล์ การอัปโหลดและการเรียกคืนไฟล์ parse รวมถึง parsefile คลาสสำหรับจัดการการอัปโหลดไฟล์ ซึ่ง back4app เก็บไว้อย่างปลอดภัย fileservice cs using parse; using system; using system threading tasks; public class fileservice { public async task\<string> uploadimageasync(byte\[] filedata, string filename) { var parsefile = new parsefile(filename, filedata); try { await parsefile saveasync(); console writeline("file saved " + parsefile url); return parsefile url; } catch (exception ex) { console writeline("error uploading file " + ex message); return null; } } } เพื่อแนบไฟล์กับวัตถุ fileservice cs (continued) public async task\<parseobject> createphotoobjectasync(byte\[] filedata, string filename) { var photo = new parseobject("photo"); var parsefile = new parsefile(filename, filedata); photo\["imagefile"] = parsefile; try { await photo saveasync(); return photo; } catch (exception ex) { console writeline("error creating photo object " + ex message); return null; } } การเรียกคืน url ของไฟล์ somecomponent razor cs var imagefile = photo get\<parsefile>("imagefile"); var imageurl = imagefile url; การเรียกคืน url ของไฟล์ คุณสามารถแสดง imageurl นี้ในคอมโพเนนต์ blazor ของคุณโดยการตั้งค่าเป็นแหล่งที่มาของ \<img> แท็ก ความปลอดภัยของไฟล์ parse server มีการกำหนดค่าที่ยืดหยุ่นเพื่อจัดการความปลอดภัยในการอัปโหลดไฟล์ ใช้ acls บน parsefiles หรือกำหนดค่าระดับเซิร์ฟเวอร์ตามที่ต้องการ ขั้นตอนที่ 7 – การกำหนดตารางงานด้วย cloud jobs cloud jobs cloud jobs ใน back4app ช่วยให้คุณกำหนดตารางและรันงานประจำในแบ็กเอนด์ของคุณ เช่น การทำความสะอาดข้อมูลเก่าหรือการส่งอีเมลสรุปรายวัน งาน cloud job ทั่วไปอาจมีลักษณะดังนี้ main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); ปรับใช้ cloud code ของคุณ ด้วยงานใหม่ (ผ่าน cli หรือแดชบอร์ด) ไปที่แดชบอร์ด back4app > การตั้งค่าแอป > การตั้งค่าเซิร์ฟเวอร์ > งานเบื้องหลัง กำหนดตาราง งานให้ทำทุกวันหรือในช่วงเวลาที่เหมาะสมกับความต้องการของคุณ cloud jobs ช่วยให้คุณสามารถทำการบำรุงรักษาเบื้องหลังหรือกระบวนการตามระยะเวลาที่กำหนดโดยไม่ต้องมีการแทรกแซงด้วยมือ ขั้นตอนที่ 8 – การรวม webhooks webhooks ช่วยให้แอป back4app ของคุณสามารถส่งคำขอ http ไปยังบริการภายนอกเมื่อเกิดเหตุการณ์บางอย่าง นี่เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการรวมกับระบบของบุคคลที่สาม เช่น เกตเวย์การชำระเงิน, เครื่องมือการตลาดทางอีเมล, หรือแพลตฟอร์มการวิเคราะห์ ไปที่การกำหนดค่า webhooks ในแดชบอร์ด back4app ของคุณ > เพิ่มเติม > webhooks และจากนั้นคลิกที่ เพิ่ม webhook ตั้งค่าจุดสิ้นสุด (เช่น, https //your external service com/webhook endpoint https //your external service com/webhook endpoint ) กำหนดค่า triggers เพื่อระบุว่าเหตุการณ์ใดในคลาส back4app หรือฟังก์ชัน cloud code ของคุณจะทำให้ webhook ทำงาน ตัวอย่างเช่น หากคุณต้องการแจ้งเตือนช่อง slack ทุกครั้งที่มีการสร้าง todo ใหม่ สร้างแอป slack ที่รับ webhook ที่เข้ามา คัดลอก url webhook ของ slack ในแดชบอร์ด back4app ของคุณ ตั้งค่าจุดสิ้นสุดเป็น url slack สำหรับเหตุการณ์ “บันทึกใหม่ในคลาส todo ” คุณยังสามารถเพิ่ม http headers หรือ payloads ที่กำหนดเองได้หากจำเป็น คุณยังสามารถกำหนด webhooks ใน cloud code โดยการทำคำขอ http ที่กำหนดเองใน triggers เช่น beforesave, aftersave ขั้นตอนที่ 9 – สำรวจแผงควบคุมผู้ดูแล back4app แอปผู้ดูแล back4app admin app เป็นอินเทอร์เฟซการจัดการที่ใช้เว็บซึ่งออกแบบมาสำหรับผู้ใช้ที่ไม่ใช่เทคนิคเพื่อทำการดำเนินการ crud และจัดการงานข้อมูลประจำวันโดยไม่ต้องเขียนโค้ดใดๆ มันมี อินเทอร์เฟซที่มุ่งเน้นโมเดล , ใช้งานง่าย ที่ช่วยให้การบริหารฐานข้อมูล การจัดการข้อมูลที่กำหนดเอง และการดำเนินงานในระดับองค์กรเป็นไปอย่างราบรื่น การเปิดใช้งานแอปผู้ดูแล เปิดใช้งาน โดยไปที่ app dashboard > more > admin app และคลิกที่ปุ่ม “enable admin app” สร้างผู้ใช้ผู้ดูแลคนแรก (ชื่อผู้ใช้/รหัสผ่าน) ซึ่งจะสร้างบทบาทใหม่ (b4aadminuser) และคลาส (b4asetting, b4amenuitem, และ b4acustomfield) ในสคีมาของแอปของคุณโดยอัตโนมัติ เลือกซับโดเมน สำหรับการเข้าถึงอินเทอร์เฟซผู้ดูแลและทำการตั้งค่าให้เสร็จสมบูรณ์ เข้าสู่ระบบ โดยใช้ข้อมูลประจำตัวผู้ดูแลที่คุณสร้างขึ้นเพื่อเข้าถึงแผงควบคุมแอปผู้ดูแลใหม่ของคุณ เมื่อเปิดใช้งานแล้ว แอปผู้ดูแล back4app จะทำให้การดู แก้ไข หรือลบระเบียนจากฐานข้อมูลของคุณเป็นเรื่องง่ายโดยไม่ต้องใช้ parse dashboard หรือโค้ดด้านหลังโดยตรง บทสรุป โดยการติดตามบทแนะนำที่ครอบคลุมนี้ คุณได้ สร้างแบ็คเอนด์ที่ปลอดภัย สำหรับแอป blazor บน back4app กำหนดค่าฐานข้อมูล ด้วยสคีมาของคลาส ประเภทข้อมูล และความสัมพันธ์ รวมการค้นหาข้อมูลแบบเรียลไทม์ เมื่อเหมาะสมสำหรับการอัปเดตข้อมูลทันที ใช้มาตรการด้านความปลอดภัย โดยใช้ acls และ clps เพื่อปกป้องและจัดการการเข้าถึงข้อมูล นำฟังก์ชัน cloud code มาใช้ เพื่อรันตรรกะทางธุรกิจที่กำหนดเองในฝั่งเซิร์ฟเวอร์ ตั้งค่าการตรวจสอบสิทธิ์ผู้ใช้ โดยมีการสนับสนุนการตรวจสอบอีเมลและการรีเซ็ตรหัสผ่าน จัดการการอัปโหลดไฟล์ และการเรียกคืน โดยมีการควบคุมความปลอดภัยของไฟล์เป็นตัวเลือก กำหนดตารางงาน cloud สำหรับงานพื้นหลังอัตโนมัติ ใช้ webhooks เพื่อรวมเข้ากับบริการภายนอก สำรวจแผงผู้ดูแล back4app สำหรับการจัดการข้อมูล ด้วยฟรอนต์เอนด์ blazor ที่แข็งแกร่งและแบ็คเอนด์ back4app ที่มีความเสถียร คุณพร้อมที่จะพัฒนาแอปพลิเคชันเว็บที่มีฟีเจอร์ครบถ้วน ขยายขนาดได้ และปลอดภัยแล้ว ดำเนินการสำรวจฟังก์ชันการทำงานที่ซับซ้อนมากขึ้น รวมถึงการรวมตรรกะทางธุรกิจของคุณ และใช้พลังของ back4app เพื่อประหยัดเวลาหลายชั่วโมงในการจัดการเซิร์ฟเวอร์และฐานข้อมูล ขอให้สนุกกับการเขียนโค้ด! ขั้นตอนถัดไป สร้างแอป blazor ที่พร้อมสำหรับการผลิต โดยการขยายแบ็กเอนด์นี้เพื่อจัดการกับโมเดลข้อมูลที่ซับซ้อนมากขึ้น กลยุทธ์การแคช และการปรับแต่งประสิทธิภาพ รวมฟีเจอร์ขั้นสูง เช่น กระบวนการตรวจสอบสิทธิ์เฉพาะทาง การควบคุมการเข้าถึงตามบทบาท หรือ api ภายนอก ตรวจสอบเอกสารทางการของ back4app สำหรับการเจาะลึกในด้านความปลอดภัยขั้นสูง การปรับแต่งประสิทธิภาพ และการวิเคราะห์บันทึก สำรวจบทเรียนอื่นๆ เกี่ยวกับแอปพลิเคชันแชทแบบเรียลไทม์ แดชบอร์ด iot หรือบริการที่อิงตามตำแหน่งที่ตั้ง รวมเทคนิคที่เรียนรู้ที่นี่กับ api ของบุคคลที่สามเพื่อสร้างแอปพลิเคชันที่ซับซ้อนในโลกจริง