အထောက်အထား စိစစ်ခြင်း

အသုံးပြုသူ session များအတွက် JWT၊ ပေါင်းစပ်မှုများအတွက် API key များ

ဖတ်ရန် 4 မိနစ်
ဤကဏ္ဍကို ပရင့်ထုတ်ပါ

FreeMaint သည် auth mechanism နှစ်မျိုးကို လက်ခံသည် - JWT (/auth/login မှ ထုတ်ပေးပြီး၊ ကျွန်ုပ်တို့၏ web နှင့် mobile app များတွင် အသုံးပြုသည်) နှင့် API key (/company-settings/api တွင် ဖန်တီးထားပြီး သင့်ကိုယ်ပိုင် ပေါင်းစပ်မှုများတွင် အသုံးပြုသည်)။

JWT (အသုံးပြုသူ session များ)

  1. POST /auth/login — Body - {email, password}။ {access_token, refresh_token} ကို ပြန်ပေးသည်။
  2. Authorization header ကို ပို့ပါ — တောင်းဆိုချက်တိုင်းတွင် - Authorization: Bearer <access_token>။
  3. သက်တမ်းကုန်ချိန်တွင် Refresh လုပ်ပါ — access_token အသစ်ရရှိရန် refresh_token ဖြင့် POST /auth/refresh ကို ခေါ်ပါ။ Access token များသည် ၂ နာရီ တည်ရှိသည်။

API key (server ပေါင်းစပ်မှုများ)

  1. /company-settings/api သို့မဟုတ် /profile/api-keys ကို ဖွင့်ပါ — စီမံခန့်ခွဲသူများသည် Business အစီအစဉ်နှင့်အထက်တွင် ကုမ္ပဏီဆက်တင်များ > API ၌ ကီးများကို ဖန်တီးသည်။ အခန်းကဏ္ဍတွင် “ကိုယ်ပိုင် API ကီးများ ဖန်တီးရန်” ခွင့်ပြုချက် ရှိသူသည် ကိုယ်ရေးအချက်အလက် > လုံခြုံရေး > API ကီးများ တွင် ကိုယ်ပိုင်ကီးများကို ဖန်တီးသည်။ "ပေါင်းစပ်မှုများကို စီမံရန်" ခွင့်ပြုချက်ရှိသော အခန်းကဏ္ဍ (ဥပမာ ပေါင်းစပ်မှု စီမံခန့်ခွဲသူ ပုံစံ) သည် စီမံခန့်ခွဲသူ မဟုတ်ဘဲ ကုမ္ပဏီ ကီးများကို ဖန်တီး၊ ရုပ်သိမ်း၊ ဖျက်နိုင်သည်။ ကီးကို အခြားသူထံ လွှဲပေးနိုင်သူမှာ စီမံခန့်ခွဲသူသာ ဖြစ်သည်။
  2. 'ကီးအသစ်' ကို နှိပ်ပါ — သက်တမ်းကုန်ရက်နှင့် ဝင်ရောက်ခွင့်အဆင့်ကို ရွေးချယ်သတ်မှတ်နိုင်သည် (မူရင်းမှာ ဖတ်ရှုရုံသာ)။ မူလကီးကို တစ်ကြိမ်တည်းသာ ပြသမည် — ချက်ချင်း ကူးယူပါ။
  3. အသုံးပြုပါ — တောင်းဆိုချက်တိုင်းတွင် Authorization: Bearer fmk_<rawKey> ကို ပို့ပါ။ ဖော်မတ် - fmk_ ဖြင့်စတင်ပြီး hex character ၃၂ လုံး ဆက်လက်ပါဝင်သည်။

လုံခြုံရေး မှတ်ချက်များ

  • API key များကို SHA-256 hash အဖြစ် သိမ်းဆည်းထားသည် — reveal dialog ကို ပိတ်လိုက်သည်နှင့် raw value ကို ပြန်လည်ရယူ၍ မရနိုင်တော့ပါ
  • key တစ်ခုကို revoke လုပ်ခြင်းသည် ချက်ချင်း disable လုပ်ပေးသည်; audit အတွက် အတန်းကို ဆက်လက်ထိန်းသိမ်းထားသည်
  • ကီးတစ်ခုစီသည် ကုမ္ပဏီတစ်ခုတည်းနှင့်သာ သက်ဆိုင်ပြီး ထိုကုမ္ပဏီ၏ ဒေတာကိုသာ ရောက်သည် — အခြားကုမ္ပဏီ၏ မှတ်တမ်းကို မတွေ့ပါ ဟုသာ ပြသည်
  • key များတွင် ရေတိုပေါင်းစပ်မှုများအတွက် ရွေးချယ်နိုင်သော expiresAt ရှိနိုင်သည်
  • ဝင်ရောက်ခွင့်အဆင့်များ — ပိုင်ရှင်၏ ခွင့်ပြုချက်များအပေါ် ထပ်ဆင့်ထားသော အမြင့်ဆုံးကန့်သတ်ချက်: READ (မူရင်း — မေးမြန်းချက်များသာ)၊ READ_STOCK (မေးမြန်းချက်များ + adjustStock — ထုတ်ယူမှုသီးသန့် ကီအော့စ်အတွက် အသင့်တော်ဆုံး)၊ FULL (ပိုင်ရှင်၏ အခန်းကဏ္ဍက ခွင့်ပြုသော လုပ်ဆောင်ချက်တိုင်း)
  • ကီးတိုင်းသည် ၎င်း၏ပိုင်ရှင်အဖြစ် လုပ်ဆောင်သည် — ခေါ်ဆိုမှုတိုင်းတွင် ပိုင်ရှင်၏ ခွင့်ပြုချက်များနှင့် ဒေတာမြင်နိုင်မှု ပါဝင်ပြီး ကီးက ရေးသွင်းသမျှကို ပိုင်ရှင်၏အမည်ဖြင့် လက်မှတ်ထိုးသည်။ ပိုင်ရှင်ကို ပိတ်လိုက်ပါက စီမံခန့်ခွဲသူတစ်ဦးက ကုမ္ပဏီဆက်တင်များ > API တွင် အခြားသူတစ်ဦးထံ လွှဲပေးသည်အထိ ကီးကို ငြင်းပယ်မည် (401၊ ကုဒ် API_KEY_OWNER_INACTIVE) — ကီး၏တန်ဖိုး မပြောင်းလဲပါ။

ချိတ်ဆက်မှုကို စမ်းသပ်ခြင်း

သီးခြား sandbox ပတ်ဝန်းကျင် မရှိပါ- API ကီးသည် ၎င်းပိုင်ဆိုင်သော ကုမ္ပဏီ၏ အစစ်အမှန် ဒေတာကိုသာ အမြဲ ချိတ်ဆက်သည်။ ဘေးကင်းစွာ စမ်းသပ်နည်း နှစ်မျိုး ရှိသည်။ (၁) ဒုတိယ ကုမ္ပဏီတစ်ခုကို စမ်းသပ်ကုမ္ပဏီအဖြစ် အသုံးပြုပါ — ကုမ္ပဏီများကြား ခွဲခြားထားမှုသည် ဖောက်သည်တိုင်းကို ခွဲခြားထားသည့် ယန္တရားတစ်ခုတည်း ဖြစ်သဖြင့် ထိုနေရာတွင် သင်လုပ်သမျှ သင်၏ ထုတ်လုပ်ရေး ဒေတာကို မထိနိုင်ပါ။ API ကီးများအတွက် Business အစီအစဉ် လိုအပ်သဖြင့် ထိုကုမ္ပဏီသည်လည်း Business တွင် ရှိရမည်- အခမဲ့ ကုမ္ပဏီက ကီး မဖန်တီးနိုင်ပါ။ (၂) ဖတ်ရှုရုံ အလုပ်အတွက် READ ဝင်ရောက်ခွင့်အဆင့်ဖြင့် ကီးတစ်ခု ဖန်တီးပါ- ၎င်းသည် query အားလုံးကို လုပ်ဆောင်နိုင်ပြီး mutation တစ်ခုမျှ မလုပ်နိုင်သဖြင့် မည်သည့်အရာကိုမျှ ပြောင်းလဲ၍ မရပါ။ ရေးသားရန် အသင့်ဖြစ်သည့်အခါ READ_STOCK ကီးသည် adjustStock ကိုသာ ခွင့်ပြုသည်။

အကြံပြုချက်

key တစ်ခု ချိုးဖောက်ခံရသလား? /company-settings/api မှ revoke လုပ်ပါ — စက္ကန့်အနည်းငယ်အတွင်း သက်ရောက်သွားမည်။

ဤစာမျက်နှာသည် အသုံးဝင်ပါသလား။