ການເຮັດວຽກກ່ຽວກັບລະບົບຍ່ອຍບັນຊີອອນລາຍ (Online Accounts)

ລະບົບຍ່ອຍບັນຊີອອນລາຍ (Online Accounts) ປະກອບດ້ວຍອົງປະກອບດັ່ງນີ້:

  • Accounts UI: ສ່ວນນີ້ສະໜອງອົງປະກອບທີ່ຜູ້ໃຊ້ເຫັນ ແລະ ເປັນຄລາສພື້ນຖານ (base classes) ສຳລັບຟີເຈີ Online Accounts ທັງໝົດ. ໃນລາຍລະອຽດ ທ່ານຈະພົບເຫັນໄດເຣັກທໍຣີຍ່ອຍ (subdirectories) ເຫຼົ່ານີ້:

    • click-hooks: ໂປຣແກຣມທີ່ຣັນເມື່ອ Click application ທີ່ໃຊ້ຟັງຊັນ Online Accounts ຖືກຕິດຕັ້ງ ຫຼື ລຶບອອກ.

    • client: ໄລບຣາຣີ (library) ທີ່ແອັບພລິເຄຊັນລູກຂ່າຍ (client) ສາມາດໃຊ້ເພື່ອຮ້ອງຂໍການເຂົ້າເຖິງບັນຊີ.

    • online-accounts-service: ບໍລິການຫຼັກທີ່ຈັດການຕັກກະ (logic) ໃນການປະມວນຜົນຄຳຮ້ອງຂໍຈາກ client. ມັນບໍ່ມີ UI ແຕ່ສາມາດສະແດງ online-accounts-ui ຊ້ອນເທິງ UI ຂອງແອັບພລິເຄຊັນໄດ້.

    • online-accounts-ui: ສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ທີ່ຈະປັອບອັບຂຶ້ນມາເມື່ອແອັບພລິເຄຊັນໂຕ້ຕອບກັບບັນຊີອອນລາຍ (ຕົວຢ່າງ: ໄດອາລັອກທີ່ປະກົດຂຶ້ນເມື່ອແອັບຮ້ອງຂໍການເຂົ້າເຖິງບັນຊີ).

    • plugins: ຄລາສພື້ນຖານ ແລະ ອົງປະກອບ QML ທີ່ປລັກອິນ (plugins) ຂອງບັນຊີສາມາດໃຊ້ໃນການພັດທະນາ.

    • system-settings-plugin: ສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ສຳລັບແຖບບັນຊີ (Accounts panel) ໃນແອັບພລິເຄຊັນ System Settings.

  • Account plugins ກຳນົດຜູ້ໃຫ້ບໍລິການບັນຊີທີ່ມີຢູ່ ແລະ ຈັດການສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ລວມເຖິງຕັກກະໃນການສ້າງບັນຊີ.

  • ຊຸດອົງປະກອບຈາກໂຄງການ Accounts&SSO project: ໃນຂະນະທີ່ການພັດທະນາເກີດຂຶ້ນໃນໂຄງການຕົ້ນນ້ຳ (upstream), UBports ໄດ້ແຍກ (fork) ມາເພື່ອເພີ່ມ Debian packaging. ໂຄງການເຫຼົ່ານີ້ປະກອບດ້ວຍ:

    • libaccounts-glib: API ສຳລັບຈັດການບັນຊີໃນແອັບພລິເຄຊັນ C/GLib.

    • libsignon-glib: API ສຳລັບຢືນຢັນຕົວຕົນ (authentication) ໃນແອັບພລິເຄຊັນ C/GLib.

    • libaccounts-qt: API ສຳລັບຈັດການບັນຊີໃນແອັບພລິເຄຊັນ Qt.

    • signond: ເດມອນ (daemon) ຢືນຢັນຕົວຕົນທີ່ໃຫ້ບໍລິການ D-Bus API. ມັນລວມມີໄລບຣາຣີ libsignon-qt ເຊິ່ງສະໜອງ API ຢືນຢັນຕົວຕົນສຳລັບແອັບ Qt.

    • signon-plugin-oauth2: ປລັກອິນ OAuth (1.0 ແລະ 2.0) ສຳລັບ signond.

    • accounts-qml-module API ສຳລັບຢືນຢັນຕົວຕົນ ແລະ ຈັດການບັນຊີໃນແອັບພລິເຄຊັນ QML (ສາມາດໃຊ້ໃນການພັດທະນາ account plugins ໄດ້ເຊັ່ນກັນ).

  • The account-polld service, which runs in the background and checks every 5 minutes for new account activity (the interval is decided by the Ubuntu Push service)

  • account-polld-plugins-go: ຄັງເກັບປລັກອິນສຳລັບບໍລິການ account-polld. ປລັກອິນໃນຄັງນີ້ຖືກຂຽນດ້ວຍພາສາ Go, ແຕ່ປລັກອິນຍັງສາມາດຂຽນດ້ວຍພາສາອື່ນໆ ແລະ ຢູ່ໃນຄັງອື່ນໆໄດ້.

ການແກ້ໄຂບັນຫາ (Debugging)

ບັນຫາໃນການສ້າງບັນຊີ

It may happen that the account creation fails, either due to communication issues with the remote server, or to some bug in the account plugin itself (this can easily happen while developing a new plugin). In order to debug such situations, you can open a terminal (it's easier if done from a remote shell -- you can gain a shell on the device using ການເຂົ້າເຖິງ Shell ຜ່ານ ADB or ການເຂົ້າເຖິງ Shell ຜ່ານ SSH) and start the online-accounts-service in debug mode:

pkill online-accounts-service
OAU_LOGGING_LEVEL=2 OAU_DAEMON_TIMEOUT=9999 online-accounts-service

ຖ້າທ່ານຄິດວ່າບັນຫາເກີດຈາກຂັ້ນຕອນການຢືນຢັນຕົວຕົນ (authentication), ທ່ານສາມາດເປີດການເກັບບັນທຶກ logging ໃຫ້ລະອຽດຂຶ້ນໂດຍ signond ດັ່ງນີ້:

pkill signond
export SSO_LOGGING_OUTPUT="stdout"    # signond logs to the syslog by default
SSO_LOGGING_LEVEL=2 SSO_DAEMON_TIMEOUT=9999 signond

ຫຼັງຈາກນັ້ນ ໃຫ້ລອງເຮັດຂັ້ນຕອນທີ່ຫຼົ້ມເຫຼວຄືນໃໝ່, ແລະ ທ່ານຈະເຫັນຂໍ້ມູນ debugging ທັງໝົດສະແດງໃນຄອນໂຊນ (console).