Dark mode
ทำไมต้อง WorkOS
WorkOS และ Supabase มีจุดเด่นต่างกันสำหรับการจัดการระบบผู้ใช้:
ฟีเจอร์ | WorkOS | Supabase Auth |
---|---|---|
ประเภทระบบ | Enterprise Identity Platform | General Authentication Service |
Authentication | ✅ SAML, OIDC, Enterprise SSO | ✅ Email/Password, Social Logins |
SSO | ✅ Support 20+ Identity Providers | ❌ Limited OAuth only |
Directory Sync | ✅ SCIM, Active Directory Sync | ❌ No directory integration |
Audit Logs | ✅ Built-in compliance logging | ❌ Manual implementation needed |
Admin Portal | ✅ Customizable enterprise portal | ❌ No admin interface |
Authorization | ✅ Role-based + fine-grained | ✅ Basic row-level security |
Pricing | Custom enterprise pricing | Free tier + usage-based pricing |
Implementation | 1-2 weeks for enterprise features | Can implement in hours |
Compliance | ✅ SOC 2, HIPAA, GDPR ready | ❌ Self-managed compliance |
Best For | Large enterprises, regulated industries | Startups, small projects |
WorkOS ดีที่สุดเมื่อ:
- องค์กรมีระบบ Identity Provider อยู่แล้ว (เช่น Okta, Azure AD)
- ต้องการทำ Compliance สำหรับมาตรฐานความปลอดภัย
- มีผู้ใช้มากกว่า 1,000 คน
- ต้องการระบบจัดการผู้ใช้แบบรวมศูนย์
Supabase Auth ดีที่สุดเมื่อ:
- เริ่มต้นโปรเจคใหม่และต้องการระบบ Authentication พื้นฐาน
- ใช้งบประมาณจำกัด
- ใช้ Supabase Database เป็นหลัก
- ไม่ต้องการฟีเจอร์ระดับ Enterprise
WorkOS เหมาะสำหรับ:
- องค์กรขนาดใหญ่ที่ต้องการระบบ Enterprise-ready
- การ integrate กับระบบเดิมเช่น Active Directory
- การทำ compliance (SOC 2, HIPAA)
- การจัดการผู้ใช้แบบครบวงจร
Supabase Auth เหมาะสำหรับ:
- แอปทั่วไปที่ต้องการระบบ authentication พื้นฐาน
- โครงการที่ต้องการเริ่มต้นฟรี
- การใช้ร่วมกับ Supabase database อื่นๆ
WorkOS ช่วยให้เพิ่มฟีเจอร์ enterprise-ready ให้กับแอปของคุณได้อย่างรวดเร็ว โดยไม่ต้องพัฒนาตั้งแต่เริ่มต้นซึ่งใช้เวลานานและมี complexity สูง
Features
Feature | คำอธิบาย | ตัวอย่าง |
---|---|---|
ระบบจัดการข้อมูลผู้ใช้แบบครบวงจร ทั้งการสร้าง บันทึก แก้ไข และลบผู้ใช้ รวมถึงการกำหนดบทบาทและสิทธิ์ต่าง ๆ | จัดการข้อมูลผู้ใช้ทั้งหมดในระบบเดียว | |
ระบบล็อกอินแบบรวมศูนย์ที่ให้พนักงานใช้บัญชีเดียวเข้าถึงทุกแอปพลิเคชันที่บริษัทใช้งาน | ล็อกอินครั้งเดียวใช้งานได้ทุกแอปพลิเคชัน | |
ระบบตรวจสอบและป้องกันการโจมตีแบบเรียลไทม์ ทั้งจากบอท มัลแวร์ หรือการเข้าถึงที่ไม่พึงประสงค์ | ตรวจจับและบล็อกการโจมตีทันที | |
พอร์ทัลที่ให้ผู้ดูแลระบบสามารถจัดการผู้ใช้ กำหนดสิทธิ์ และตรวจสอบกิจกรรมต่าง ๆ ได้ด้วยตัวเอง | ผู้ดูแลระบบจัดการสิทธิ์และตั้งค่าเองได้ | |
ระบบซิงโครไนซ์ข้อมูลผู้ใช้ระหว่างแอปพลิเคชันกับระบบ Directory ขององค์กรอัตโนมัติ | ซิงค์ข้อมูลพนักงานจาก Active Directory อัตโนมัติ | |
ระบบควบคุมการเข้าถึงที่ละเอียดถึงระดับฟีเจอร์หรือข้อมูลย่อยในแอปพลิเคชัน | กำหนดสิทธิ์การเข้าถึงทีละฟีเจอร์ | |
ชุดเครื่องมือสำหรับสร้างหน้าล็อกอินที่ปรับแต่งได้ตามแบรนด์ขององค์กร | หน้าล็อกอินที่ปรับแต่งให้เข้ากับแบรนด์ | |
บันทึกกิจกรรมทั้งหมดของผู้ใช้ในระบบสำหรับการตรวจสอบและความปลอดภัย | ดูประวัติการเข้าถึงไฟล์สำคัญ | |
ระบบจัดเก็บและจัดการข้อมูลลับอย่างปลอดภัยด้วยการเข้ารหัส | จัดการรหัสผ่านและข้อมูลลับอย่างปลอดภัย |
Get Started
สมัครบัญชี WorkOS ที่
เว็บไซต์
ติดตั้ง SDK ด้วย package manager ที่ต้องการ:
bashnpm install @workos-inc/node
bashyarn add @workos-inc/node
bashpnpm add @workos-inc/node
bashbun add @workos-inc/node
ตั้งค่า API Key ใน environment:
bashexport WORKOS_API_KEY=your_api_key_here
เริ่ม implement features ที่ต้องการตาม documentation
ทดสอบการทำงานใน development environment
Deploy ไปยัง production เมื่อพร้อม
ตัวอย่างการใช้งาน Basic SSO:
typescript
import { WorkOS } from '@workos-inc/node';
const workos = new WorkOS(process.env.WORKOS_API_KEY);
// สร้าง SSO link
const { url } = await workos.sso.getAuthorizationURL({
connection: 'conn_123',
clientId: 'client_123',
redirectUri: 'https://your-app.com/callback',
state: 'custom-state',
});
ตัวอย่างการเรียกใช้ API:
typescript
<script setup lang="ts">
import { useWorkOS } from '~/composables/workos'
const workos = useWorkOS()
// สร้างผู้ใช้ใหม่
const createUser = async () => {
try {
const newUser = await workos.users.create({
email: '[email protected]',
firstName: 'John',
lastName: 'Doe'
})
console.log('User created:', newUser)
} catch (error) {
console.error('Error creating user:', error)
}
}
</script>
typescript
import { WorkOS } from '@workos-inc/node'
function UserManagement() {
const workos = new WorkOS(process.env.NEXT_PUBLIC_WORKOS_API_KEY)
const createUser = async () => {
try {
const newUser = await workos.users.create({
email: '[email protected]',
firstName: 'John',
lastName: 'Doe'
})
console.log('User created:', newUser)
} catch (error) {
console.error('Error creating user:', error)
}
}
return (
<button onClick={createUser}>Create User</button>
)
}
typescript
// pages/api/create-user.ts
import { WorkOS } from '@workos-inc/node'
const workos = new WorkOS(process.env.WORKOS_API_KEY)
export default async function handler(req, res) {
if (req.method === 'POST') {
try {
const newUser = await workos.users.create(req.body)
res.status(200).json(newUser)
} catch (error) {
res.status(500).json({ error: error.message })
}
} else {
res.setHeader('Allow', ['POST'])
res.status(405).end(`Method ${req.method} Not Allowed`)
}
}
typescript
// composables/useWorkOS.ts
export const useWorkOS = () => {
const workos = new WorkOS(process.env.WORKOS_API_KEY)
const createUser = async (userData) => {
return await workos.users.create(userData)
}
return {
createUser
// เพิ่ม methods อื่นๆ
}
}
APIs
Feature | ชื่อ API | Description |
---|---|---|
User Management | createUser | จัดการข้อมูลผู้ใช้ (สร้าง/อ่าน/แก้ไข/ลบ) |
updateUserRoles | จัดการบทบาทผู้ใช้ | |
SSO | getAuthorizationURL | สร้างลิงก์สำหรับการล็อกอินแบบ SSO |
getUserProfile | ดึงข้อมูลผู้ใช้หลังล็อกอิน | |
listConnections | จัดการการเชื่อมต่อ SSO | |
Directory Sync | listDirectoryUsers | ดึงข้อมูลผู้ใช้จากระบบ Directory |
listDirectoryGroups | ดึงข้อมูลกลุ่มจากระบบ Directory | |
syncDirectory | จัดการการซิงค์ข้อมูล | |
Audit Logs | createAuditLog | บันทึกและดึงข้อมูลกิจกรรมในระบบ |
exportAuditLogs | ส่งออกข้อมูล Audit Logs | |
Authorization | checkAuthorization | ตรวจสอบสิทธิ์การเข้าถึง |
managePermissions | จัดการสิทธิ์การเข้าถึง | |
Vault | encryptData | เข้ารหัสข้อมูลสำคัญ |
decryptData | ถอดรหัสข้อมูล | |
manageKeys | จัดการ encryption keys | |
Radar | verifyRequest | ตรวจสอบและป้องกันการโจมตี |
logSecurityEvent | บันทึกเหตุการณ์ความปลอดภัย | |
Admin Portal | createPortalSession | จัดการ session ผู้ดูแลระบบ |
updatePortalSettings | ตั้งค่าระบบ |
ตัวอย่าง
// TODO add code example