Skip to content

ทำไมต้อง WorkOS

WorkOS และ Supabase มีจุดเด่นต่างกันสำหรับการจัดการระบบผู้ใช้:

ฟีเจอร์WorkOSSupabase Auth
ประเภทระบบEnterprise Identity PlatformGeneral 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
PricingCustom enterprise pricingFree tier + usage-based pricing
Implementation1-2 weeks for enterprise featuresCan implement in hours
Compliance✅ SOC 2, HIPAA, GDPR ready❌ Self-managed compliance
Best ForLarge enterprises, regulated industriesStartups, 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คำอธิบายตัวอย่าง
workos.com faviconUser Managementระบบจัดการข้อมูลผู้ใช้แบบครบวงจร ทั้งการสร้าง บันทึก แก้ไข และลบผู้ใช้ รวมถึงการกำหนดบทบาทและสิทธิ์ต่าง ๆจัดการข้อมูลผู้ใช้ทั้งหมดในระบบเดียว
workos.com faviconEnterprise SSOระบบล็อกอินแบบรวมศูนย์ที่ให้พนักงานใช้บัญชีเดียวเข้าถึงทุกแอปพลิเคชันที่บริษัทใช้งานล็อกอินครั้งเดียวใช้งานได้ทุกแอปพลิเคชัน
workos.com faviconRadarระบบตรวจสอบและป้องกันการโจมตีแบบเรียลไทม์ ทั้งจากบอท มัลแวร์ หรือการเข้าถึงที่ไม่พึงประสงค์ตรวจจับและบล็อกการโจมตีทันที
workos.com faviconAdmin Portalพอร์ทัลที่ให้ผู้ดูแลระบบสามารถจัดการผู้ใช้ กำหนดสิทธิ์ และตรวจสอบกิจกรรมต่าง ๆ ได้ด้วยตัวเองผู้ดูแลระบบจัดการสิทธิ์และตั้งค่าเองได้
workos.com faviconDirectory Syncระบบซิงโครไนซ์ข้อมูลผู้ใช้ระหว่างแอปพลิเคชันกับระบบ Directory ขององค์กรอัตโนมัติซิงค์ข้อมูลพนักงานจาก Active Directory อัตโนมัติ
workos.com faviconFine-Grained Authorizationระบบควบคุมการเข้าถึงที่ละเอียดถึงระดับฟีเจอร์หรือข้อมูลย่อยในแอปพลิเคชันกำหนดสิทธิ์การเข้าถึงทีละฟีเจอร์
workos.com faviconAuthKitชุดเครื่องมือสำหรับสร้างหน้าล็อกอินที่ปรับแต่งได้ตามแบรนด์ขององค์กรหน้าล็อกอินที่ปรับแต่งให้เข้ากับแบรนด์
workos.com faviconAudit Logsบันทึกกิจกรรมทั้งหมดของผู้ใช้ในระบบสำหรับการตรวจสอบและความปลอดภัยดูประวัติการเข้าถึงไฟล์สำคัญ
workos.com faviconVaultระบบจัดเก็บและจัดการข้อมูลลับอย่างปลอดภัยด้วยการเข้ารหัสจัดการรหัสผ่านและข้อมูลลับอย่างปลอดภัย

Get Started

  1. สมัครบัญชี WorkOS ที่ workos.com faviconเว็บไซต์

  2. ติดตั้ง SDK ด้วย package manager ที่ต้องการ:

    bash
    npm install @workos-inc/node
    bash
    yarn add @workos-inc/node
    bash
    pnpm add @workos-inc/node
    bash
    bun add @workos-inc/node
  3. ตั้งค่า API Key ใน environment:

    bash
    export WORKOS_API_KEY=your_api_key_here
  4. เริ่ม implement features ที่ต้องการตาม documentation

  5. ทดสอบการทำงานใน development environment

  6. 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ชื่อ APIDescription
User ManagementcreateUserจัดการข้อมูลผู้ใช้ (สร้าง/อ่าน/แก้ไข/ลบ)
updateUserRolesจัดการบทบาทผู้ใช้
SSOgetAuthorizationURLสร้างลิงก์สำหรับการล็อกอินแบบ SSO
getUserProfileดึงข้อมูลผู้ใช้หลังล็อกอิน
listConnectionsจัดการการเชื่อมต่อ SSO
Directory SynclistDirectoryUsersดึงข้อมูลผู้ใช้จากระบบ Directory
listDirectoryGroupsดึงข้อมูลกลุ่มจากระบบ Directory
syncDirectoryจัดการการซิงค์ข้อมูล
Audit LogscreateAuditLogบันทึกและดึงข้อมูลกิจกรรมในระบบ
exportAuditLogsส่งออกข้อมูล Audit Logs
AuthorizationcheckAuthorizationตรวจสอบสิทธิ์การเข้าถึง
managePermissionsจัดการสิทธิ์การเข้าถึง
VaultencryptDataเข้ารหัสข้อมูลสำคัญ
decryptDataถอดรหัสข้อมูล
manageKeysจัดการ encryption keys
RadarverifyRequestตรวจสอบและป้องกันการโจมตี
logSecurityEventบันทึกเหตุการณ์ความปลอดภัย
Admin PortalcreatePortalSessionจัดการ session ผู้ดูแลระบบ
updatePortalSettingsตั้งค่าระบบ

ตัวอย่าง

// TODO add code example

Last updated: