ให้ทีมเข้าหน้า admin ด้วยบัญชี Google
ไม่ต้องแจกรหัสผ่านให้ทุกคนในทีมอีกต่อไป ตั้งค่าให้ทีมเข้าหน้า admin ของ Easy CMS ด้วยบัญชี Google ในไม่กี่ขั้นตอน และเลือกได้ว่าใครเข้าได้บ้าง
ทุกคนในทีมมีบัญชี Google อยู่แล้ว ทำไมต้องจำรหัสผ่านอีกชุดสำหรับหน้า admin single sign-on ใน Easy CMS ฟรีภายใต้ MIT ไม่ต้องซื้อแพ็กเกจ enterprise เว็บที่คุณกำลังอ่านอยู่นี้ก็ใช้วิธีนี้
1. ติดตั้งและใส่ใน config
npm install @easy-cms/auth-oauthimport { google } from '@easy-cms/auth-oauth'
export default defineConfig({
serverURL: 'https://cms.example.com',
auth: {
providers: [google()], // อ่าน GOOGLE_CLIENT_ID และ GOOGLE_CLIENT_SECRET
},
// …
})serverURL ต้องมีบน production เพราะใช้สร้าง callback URL การเปิด single sign-on จะเพิ่มตาราง user-identities จึงต้องสร้าง migration ด้วย npx easy-cms migrate:create sso แล้ว commit ไฟล์ที่ได้
2. สร้าง OAuth client ใน Google Cloud
ไปที่ Google Cloud console → APIs & Services → Credentials แล้วสร้าง OAuth client ID แบบ Web application
ถ้าถูกถามให้ตั้ง consent screen: ทีมที่ใช้ Google Workspace เลือก Internal ถ้าไม่ใช่ให้เลือก External และระหว่างที่ยังอยู่ในสถานะ Testing ให้เพิ่มบัญชีของทุกคนที่จะเข้าใน Test users
ใน Authorized redirect URIs ใส่
https://cms.example.com/api/cms/auth/google/callbackและhttp://localhost:3000/api/cms/auth/google/callbackสำหรับตอนพัฒนา
หน้า ตั้งค่า → Single sign-on ในหน้า admin แสดง callback URL ที่ถูกต้องพร้อมปุ่มคัดลอก ใช้ตรงนั้นจะได้ไม่พิมพ์ผิด
3. ตั้งค่า environment
ใส่ GOOGLE_CLIENT_ID และ GOOGLE_CLIENT_SECRET ที่ได้จาก Google ในที่ที่คุณ deploy เช่น Environment Variables ของ Vercel อย่า commit ลง git และอย่าส่งต่อในแชต หลัง deploy หน้า login จะมีปุ่ม เข้าสู่ระบบด้วย Google
4. เลือกว่าใครเข้าได้
ค่าเริ่มต้นปลอดภัยที่สุด: เฉพาะคนที่มีบัญชีใน Easy CMS อยู่แล้ว เข้าสู่ระบบด้วยรหัสผ่านครั้งแรกแล้วกด เชื่อม Google ที่หน้าบัญชีของตัวเอง อีเมลที่ไม่รู้จักจะเข้าไม่ได้
ถ้าทีมใช้ Google Workspace มีทางลัดสองแบบ:
google({ linkByEmail: true })จับคู่บัญชีด้วยอีเมลที่ Google ยืนยันแล้ว ไม่ต้องกดเชื่อมเองproviderSignUp: { domains: ['example.com'], role: 'editor' }ให้คนในโดเมนของคุณได้บัญชีตอนเข้าครั้งแรก (บทบาทนี้ตั้งเป็น admin ไม่ได้)
ใช้ google({ hd: 'example.com' }) ร่วมด้วย เพื่อให้หน้าเลือกบัญชีของ Google แสดงเฉพาะบัญชีในโดเมนของคุณ
5. ปิดรหัสผ่าน (ถ้าต้องการ)
auth: { providers: [google()], password: false },ทุกคนจะต้องเข้าด้วย Google ยกเว้น admin ที่ยังใช้รหัสผ่านได้ ไว้เป็นทางเข้าสำรองตอน Google มีปัญหา
ต่อจากนี้
รวม single sign-on กับ บทบาทและสิทธิ์ระดับ field และ audit log แล้ว ทีมจะรู้ว่าใครแก้อะไรเมื่อไร รายละเอียดทั้งหมด รวมถึง Microsoft, GitHub และ OpenID Connect อยู่ที่ คู่มือ Single sign-on