policy

Terms & Privacy

Service Terms, Identity Orchestration & Data Protection

arrow_back Back
Version 1.2.1
Privacy Notice

format_list_numbered Table of Contents

  1. Terms of Service
  2. Data Controller Information
  3. Data We Collect
  4. How We Use Your Data
  5. Cookies & Browser Storage
  6. Data Sharing
  7. Data Retention
  8. Your Rights (PDPA)
  9. Security
  10. Contact Us

gavel Terms of Service / เงื่อนไขการให้บริการ

These Terms describe the rules for using AuthSys. The email/password registration form records an explicit checkbox action; social sign-in may create an account without a separate AuthSys checkbox, as explained below.

Email/password registration requires a checkbox accepting these Terms and acknowledging this Privacy Notice. Google or GitHub sign-in can create an AuthSys account without that separate checkbox. The current implementation records the essential-acceptance flag and notice version for a newly created social-login account automatically; that database flag is not evidence of a separate checkbox action. Consent shown by Google or GitHub applies to the provider sign-in flow and is separate from this AuthSys notice.

info
These Terms of Service and the Privacy Notice are shown on one page for convenience; they remain separate sections with different purposes.

business Data Controller Information

This notice describes data processing by AuthSys ("we", "us", "our"), the name used for this private deployment. The controller name and address shown here are AuthSys; no separate physical mailing address is published.

info
This notice describes processing needed to provide authentication and account services. The distinction between the local registration acknowledgement and social sign-in is explained in the Terms section. The cookie banner stores a separate analytics choice.

database Data We Collect / ข้อมูลที่เราเก็บรวบรวม

ตัวอย่างด้านล่างอ้างอิงจากข้อมูลที่ระบบปัจจุบันจัดเก็บจริง แต่ไม่ใช่รายการฟิลด์ครบทุกฟิลด์ และฐานทางกฎหมายต้องยืนยันตามผู้ควบคุมข้อมูลและการติดตั้งใช้งานจริง

ข้อมูล / Data ตัวอย่าง / Examples วัตถุประสงค์ / Purpose ฐานทางกฎหมายที่ผู้ควบคุมข้อมูลต้องยืนยัน / Legal basis to be confirmed
Account Data ชื่อผู้ใช้, อีเมล, ชื่อที่แสดง, ประวัติย่อ, role, สถานะบัญชี, การตั้งค่า, เวลาที่เข้าสู่ระบบล่าสุด
Username, email, display name, bio, role, account status, preferences, latest login timestamp
สร้างและจัดการบัญชี
Account management
ผู้ควบคุมข้อมูลต้องยืนยัน / Controller to confirm
Authentication Data password hash, password-reset token hash/expiry, failed-login count และ lock status
Password hash, reset-token hash/expiry, failed-login count, account-lock status
ยืนยันตัวตน, กู้คืนบัญชี และป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
Authentication, account recovery, and abuse prevention
ผู้ควบคุมข้อมูลต้องยืนยัน / Controller to confirm
Social Login Data อีเมลที่ยืนยันแล้ว, provider ID, ชื่อ/username จาก provider ที่ใช้สร้าง username ของ AuthSys และ avatar จาก GitHub เมื่อมี
Verified email, provider ID, provider display name/username used to derive the AuthSys username, and GitHub avatar when supplied
เชื่อมต่อ Google/GitHub และสร้างบัญชี
Social sign-in and account linking
ผู้ควบคุมข้อมูลต้องยืนยัน / Controller to confirm
OAuth Data ชื่อ/รายละเอียดแอป, contact email, redirect URI, allowed scopes, client secret ที่เก็บเป็น hash และสถิติการใช้; grant, scope, วันหมดอายุ/เพิกถอน; authorization code, PKCE challenge และ nonce ชั่วคราว
Client name/description, contact email, redirect URI, allowed scopes, hashed client secret, usage counters; grant/scope/expiry/revocation; short-lived authorization code, PKCE challenge, and nonce
ลงทะเบียน OAuth client, ขออนุญาต, ออก token และตรวจสอบสิทธิ์
OAuth client registration, authorization, token issuance, and access control
ผู้ควบคุมข้อมูลต้องยืนยัน / Controller to confirm
Technical Data IP, user-agent, browser/OS/device category, HTTP method/path/status, session hashes/status และเหตุการณ์ audit
IP, user-agent, derived browser/OS/device category, HTTP method/path/status, session hashes/status, audit events
จัดการ session, แสดงอุปกรณ์ที่เข้าสู่ระบบ, ตรวจสอบและป้องกันเหตุด้านความปลอดภัย
Session management, device display, security monitoring and prevention
ผู้ควบคุมข้อมูลต้องยืนยัน / Controller to confirm
Usage Data เวลาเข้าสู่ระบบล่าสุด และจำนวน/เวลาการเรียกใช้ OAuth client
Latest login timestamp and OAuth-client request counts/last-used time
แสดงประวัติเข้าใช้บัญชีและติดตามการใช้งาน client; ไม่ได้ใช้เป็น analytics เพื่อปรับปรุงบริการในโค้ดปัจจุบัน
Account access history and client-usage tracking; not used for service-improvement analytics in the current code
ผู้ควบคุมข้อมูลต้องยืนยัน / Controller to confirm
Consent Record บันทึก essentialAccepted/เวลาที่บันทึก/version ตอนสร้างบัญชีและ IP เมื่อ flow ส่งมา; เมื่อเข้าสู่ระบบและ sync สำเร็จจะเก็บ cookie/analytics choice กับเวลาและ IP ของการ sync ล่าสุด; OAuth grant แยกเก็บ client, scopes, เวลาอนุมัติ/เพิกถอน/หมดอายุ
Essential-acceptance flag/time/version at account creation and IP when the flow supplies it; after successful signed-in sync, cookie/analytics choice and latest sync time/IP; OAuth grants separately store client, scopes, grant/revocation/expiry times
จำค่าตัวเลือกและจัดการสิทธิ์ OAuth; เวลา sync ไม่ใช่หลักฐานเวลาคลิกยืนยันครั้งแรก
Remember preferences and enforce OAuth grants; sync time is not proof of the original click time
ผู้ควบคุมข้อมูลต้องยืนยัน / Controller to confirm

*The application code does not determine legal basis. The data controller must confirm the legal basis, required versus optional fields, and any consequences of not providing data for the actual deployment.

lock
ระบบไม่เก็บรหัสผ่านเป็นข้อความอ่านได้ แต่เก็บค่า hash ด้วย bcrypt
The application stores a bcrypt hash rather than a readable password.

settings How We Use Your Data / วัตถุประสงค์การใช้ข้อมูล

เราใช้ข้อมูลของท่านตามวัตถุประสงค์ที่ได้รับความยินยอม หรือมีฐานทางกฎหมายรองรับเท่านั้น

verified

วัตถุประสงค์ที่จำเป็น (Essential)

สัญญา / Contract
  • ให้บริการระบบยืนยันตัวตน (Authentication)
  • สร้างและจัดการบัญชีผู้ใช้
  • ส่งอีเมลที่เกี่ยวข้องกับบัญชี เช่น รีเซ็ตรหัสผ่านและแจ้งเตือนการเข้าสู่ระบบ
  • ป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
  • ออก ตรวจสอบ ต่ออายุ และเพิกถอน OAuth/OIDC tokens ตาม scopes ที่อนุมัติ
analytics

วัตถุประสงค์เพิ่มเติม (Analytics)

ความยินยอม / Consent
  • ระบบบันทึกตัวเลือก analytics เท่านั้น; ยังไม่มี analytics provider หรือ tracking SDK เชื่อมต่ออยู่ใน application code ปัจจุบัน
  • การเก็บ log เพื่อความปลอดภัยของระบบดำเนินการแยกจาก analytics

การยืนยันตัวตนไม่ขึ้นอยู่กับ analytics และท่านปฏิเสธตัวเลือกที่ไม่จำเป็นได้ หากผู้ดูแลเพิ่ม analytics หรือบริการโฆษณาภายนอก ต้องปรับประกาศนี้และการตั้งค่าความยินยอมให้ตรงก่อนเปิดใช้

info
The current AuthSys application code has no integrated advertising or analytics provider and does not send tracking events to one. Account data is still processed by the service providers identified below; the operator must update this notice if the deployment adds advertising, analytics, or other recipients.

cookie Cookies & Browser Storage

AuthSys uses essential cookies for authentication and OAuth security, plus first-party cookies to remember your cookie choice and mark an unsuccessful consent-sync attempt. Production HTTPS/TLS must be provided by the hosting layer or reverse proxy; the session cookie is marked Secure when NODE_ENV=production. A local HTTP deployment does not encrypt traffic unless TLS is configured separately. First-party AuthSys pages use a server-side HttpOnly session cookie and do not store bearer tokens in browser storage.

Storage item Name Duration Required
Browser session cookie connect.sid 1 hour by default; up to 30 days with Remember me Essential
Privacy choice cookieConsent 365 days Functional
Analytics choice analyticsConsent 365 days Optional
Pending consent sync cookieConsentPending 30 days, only when consent cannot yet sync to an account Functional
Interface preferences localStorage: theme, language, email notifications, and login alerts Until cleared in the browser; preferences may remain after logout Optional

The web client uses localStorage for non-authentication preferences (theme, language, email notifications, and login alerts). Recent activity is kept in memory, not persisted as browser storage. The profile page may read legacy userProfile/lastLogin values left by an older version; the current code does not write those keys. Cookie-banner choices are stored in first-party cookies, not localStorage. These values are not credentials or advertising trackers. The available choices are Accept all and Reject non-essential; rejecting non-essential items does not disable the essential login session.

When an account session is available, the stored choice is sent when selected and is also re-sent by pages that initialize the cookie-banner script. The account record stores the most recently synchronized choice, timestamp, IP address, and version sent by the client; the timestamp is therefore a last-sync time, not a reliable, immutable timestamp of the original click. A saved choice is not shown again solely because the policy version changes. Anonymous choices stay in the browser until a later sync succeeds.

info
AuthSys stores the PKCE S256 challenge with the short-lived authorization code; the OAuth client creates and checks state and keeps the code verifier for the callback. In the sample clients, these flow values use short-lived HttpOnly cookies and are cleared at callback; they are not tracking cookies.

share Data Sharing

AuthSys may return data to a registered third-party application only under the scopes you approve and grant on the OAuth consent screen. The data an application receives depends on those granted scopes.

schedule Data Retention

Data Lifetime / Retention and Cleanup
Account data Email/password accounts can request deletion in AuthSys after confirming the password. Provider-linked accounts cannot use this self-service control; manage the external Google/GitHub account with that provider and contact the privacy email in the Contact Us section for deletion of AuthSys data. Deleting an external provider account does not automatically delete its AuthSys account. When AuthSys deletion is completed, the account is disabled, email/username are replaced, provider IDs and credentials are cleared, and audit identity is redacted. A minimal tombstone remains until cleanup after DATA_RETENTION_DAYS (90 days by default; minimum 30). Some operational fields, including last-login/lockout fields, remain in the tombstone until purge.
OAuth access and ID tokens Token validity is 1 hour (not a promise that every client-held copy is erased at that time). AuthSys rejects tokens for revoked grants when it checks grant status; offline JWT-only validation may not observe revocation before expiry.
OAuth refresh tokens 30 days only when an OAuth client is granted offline_access; tokens rotate and are rejected after revocation. First-party AuthSys login does not require this scope.
Authorization codes 2 minutes and single-use
Password-reset token Valid for 1 hour; MongoDB stores only its SHA-256 hash and expiry time. The current code clears it after successful use or when issuing a replacement; an expired hash may remain in the account record until then or account deletion.
OAuth consent/grant records Authorization remains valid for up to 30 days. Revocation disables the grant immediately; the grant record remains as a tombstone until its expiry/TTL cleanup. AuthSys token validation checks the active grant and approved scopes.
Security audit/login records SecurityAudit records expire after DATA_RETENTION_DAYS (90 days by default; minimum 30). The account's lastLogin is a separate latest-value field retained while the account exists; after account deletion it remains in the tombstone until that tombstone is purged. Local rotated operational log files older than 14 days are removed at application startup, so they may remain longer until a restart.
Kafka application/security logs Only when Kafka logging is enabled: standard Compose config is 7 days or 256 MiB per log partition; local fallback is 24 hours or 128 MiB per log partition. Whichever broker limit is reached first may remove older segments; the byte value is not a total cluster cap.
First-party sessions connect.sid browser cookie: 1 hour by default or up to 30 days with Remember me. Separate MongoDB device/session-control record: 1 day or 30 days respectively; it contains hashed tokens and session/device metadata.

gavel Your Rights (PDPA)

Subject to the conditions and exceptions in the Personal Data Protection Act (PDPA), your rights include:

visibility Access

Request access and a copy, subject to legal exceptions

edit Rectification

Request correction of inaccurate data

delete Erasure

Request erasure where statutory grounds apply

pause Restriction

Request restriction in cases provided by law

download Portability

Request eligible data in a portable format where applicable

block Objection

Object in the circumstances specified by law

undo Withdraw consent

Withdraw consent where processing relies on it; this does not affect prior lawful processing

campaign Complaint

Lodge a complaint with the competent authority where applicable

email
To exercise a right, contact us below. For an access request that cannot be refused under the Act, the statutory response period is without delay and no later than 30 days; time limits for other requests depend on the right and circumstances.

security Security

Security controls in the application and deployment include:

contact_mail Contact Us

For privacy-related requests, contact our privacy contact: