OAuth Login
Sinusuportahan ng HandyCafe ang social/OAuth login para sa mga customer gamit ang Device Authorization Grant (RFC 8628). Idinisenyo ang daloy na ito para sa kiosk at pampublikong kapaligiran kung saan hindi ligtas na maipasok ng mga customer ang mga kredensyal sa mga nakabahaging PC.
Mga Sinusuportahang Provider
| Provider | Endpoint |
|---|---|
| oauth2.googleapis.com | |
| graph.facebook.com/v21.0 | |
| Apple | appleid.apple.com |
| X (Twitter) | api.x.com/2/oauth2 |
| Discord | discord.com/api/oauth2 |
Ang bawat provider ay maaaring indibidwal na i-enable o i-disable sa Mga Setting > OAuth.
Daloy ng Pagpapatotoo
Ang daloy ng awtorisasyon ng device ay nagpapatuloy sa mga sumusunod na hakbang:
- Pumili ng provider ang customer -- sa idle screen ng client, tina-tap ng customer ang isang button ng provider (hal., Google, Discord).
- Nagpapadala ang kliyente ng kahilingan sa server -- inaabisuhan ng kliyente ang server ng HandyCafe na pinasimulan ang isang OAuth login.
- Humiling ang server ng code ng device -- nakikipag-ugnayan ang server sa endpoint ng awtorisasyon ng device ng napiling provider at tumatanggap ng code ng device, user code, at URI ng pag-verify.
- Ipinapakita ng kliyente ang code -- ipinapakita ng kliyente ang
user_codeatverification_urisa customer, na karaniwang ginagawa bilang isang QR code para sa madaling pag-scan. - Nagpapatotoo ang customer sa kanilang telepono -- ini-scan ng customer ang QR code gamit ang kanilang personal na device (telepono o tablet) at kinukumpleto ang pagpapatotoo sa website ng provider.
- Server polls para sa token -- pana-panahong binoboto ng server ang provider para sa isang token. Kasama sa mga estado ng botohan ang:
- Nakabinbin -- hindi pa nakumpleto ng customer ang pagpapatotoo.
- SlowDown -- masyadong madalas ang pagboto; umaatras ang server.
- Tagumpay -- nakumpleto ang pagpapatunay; natanggap na token.
- Expired -- ang code ng device ay nag-expire na bago ang authentication.
- Error -- may naganap na hindi inaasahang error.
- Kinukuha ng server ang impormasyon ng user -- sa tagumpay, ginagamit ng server ang token upang kunin ang profile ng customer mula sa provider, kasama ang
provider_uid,email,name, atavatar_url. - Inaprubahan o tinatanggihan ng Admin -- lumilitaw ang kahilingan sa pag-log in sa Pahina ng Mga Kahilingan. Ang isang admin o cashier ay nagsusuri at nag-apruba o tumatanggi sa kahilingan.
- Nilikha o na-link ang miyembro -- kung naaprubahan, gagawa ng bagong account ng miyembro o naka-link ang pagkakakilanlan ng OAuth sa isang umiiral nang miyembro.
- Magsisimula ang session ng kliyente -- ang kliyente ay tumatanggap ng kumpirmasyon at magsisimula ang session ng customer.
Mga Pagsasaalang-alang sa Seguridad
- Hindi kailanman hinawakan ng mga kredensyal ang nakabahaging PC. Ang mga customer ay nagpapatotoo sa kanilang mga personal na device lamang. Walang mga password o token ang ipinasok sa client machine.
- Gate ng pag-apruba ng admin. Ang bawat pagpasok sa pag-log in sa OAuth ay dapat maaprubahan ng isang admin o cashier bago magsimula ng isang session, na pumipigil sa hindi awtorisadong pag-access.
- Kinakailangan ng kredito na maaaring i-configure. Maaaring i-enable o i-disable ang opsyong "payagan ang pag-log in nang walang credit", na kinokontrol kung kailangan ng mga customer ng positibong balanse upang mag-log in sa pamamagitan ng OAuth.
Configuration
Ang mga provider ng OAuth ay na-configure sa Mga Setting > OAuth. Ang bawat provider ay nangangailangan ng sarili nitong mga kredensyal ng kliyente (client ID at client secret) na nakuha mula sa developer console ng provider. Paganahin lamang ang mga provider na gusto mong ialok sa iyong mga customer.