Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠΊΠ΅Π½Π° ΠΈΡΡΠ΅ΠΊΠ»ΠΎ
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ?
Π― ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Google API ΠΈ OAuth2. ΠΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Π°Π²ΡΠΎΡΠΈΠ·ΡΠ΅Ρ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠ½Π΅ Π²ΡΠ΄Π°ΡΡ Β«ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΒ» ΠΈ Π½Π΅Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΡΠΉ Β«ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°Β». Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² Google, ΠΈ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΌΠ½Π΅ Π½ΠΎΠ²ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°.
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊΠΎΠ²Π° ΡΠ΅Π»Ρ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° Π΄ΠΎΡΡΡΠΏΠ°? ΠΠΎΡΠ΅ΠΌΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ°?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ?
Π‘ΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OAuth 2.0 Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API Google Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Google OAuth2.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ ΠΎΠ±ΡΠ°Ρ ΠΈΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°ΠΌ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ?
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ oauth2 (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ):
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²:
Π 1 access_token ΠΈ refresh_token ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ (Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Google) ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ. Π₯Π°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Ρ Π²Π°ΡΠΈΡΡ ΡΠ΅Π°Π½Ρ, Π½ΠΎ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π°ΡΠΈΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎ 2 Ρ Π°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΡΠ°ΡΡ access_token ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ» Π΄ΠΎΡΡΡΠΏ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π°ΠΊΠ΅Ρ Π·Π°Π²Π»Π°Π΄Π΅Π΅Ρ access_token, Ρ Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, refresh_token ΠΈ clientid / secret ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ oauth2 ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ°ΠΉΠΌ-Π°ΡΡ Π½Π° ΡΠΎΠΊΠ΅Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ°:
Π 1) Π½Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠΊΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ access_token Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
ΠΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΌΠ½Π΅ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²:
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ / ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠΉΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΡΠΊΡΠ½Π΄-ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ / ΡΠ΅ΠΊΡΠ΅Ρ ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ²ΠΊΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ access_token ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΡΠ΅Π°Π½ΡΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π 1) ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ / ΡΠ΅ΠΊΡΠ΅Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠΌ. ΠΡΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΡΡΠΎ Π²Ρ, Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. Access_token ΠΈ refresh_token ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²ΠΎΠΈ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π ΡΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»ΠΈΠ½Π° access_token Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π»ΠΎΠΌΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ refresh_token Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎ ΠΈ access_token. Π 2) ΠΊΠ»ΠΈΠ΅Π½Ρ / ΡΠ΅ΠΊΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ. ΠΠ΄Π΅ΡΡ Π΄Π»ΠΈΠ½Π° ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ access_token ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Ρ Π°ΠΊΠ΅Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ.
ΠΠ»ΠΈΠ½Π° ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π·Π°ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΡΠ΅ΠΊΠ°ΡΡ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ access_token. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ. Π§ΡΠΎ-ΡΠΎ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΏΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ?
Π― ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΠΈΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Google API ΠΈ OAuth2. ΠΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Π°Π²ΡΠΎΡΠΈΠ·ΡΠ΅Ρ ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠ½Π΅ Π²ΡΠ΄Π°ΡΡ «ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ» ΠΈ Π½Π΅Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΡΠΉ «ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°». Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, Ρ ΠΌΠΎΠ³Ρ POST ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠΊΠ΅Π½ Π² Google, ΠΈ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΌΠ½Π΅ Π½ΠΎΠ²ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊΠΎΠ²Π° ΡΠ΅Π»Ρ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° Π΄ΠΎΡΡΡΠΏΠ°? ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠΊΠ΅Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ?
Π‘ΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OAuth 2.0 Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API Google Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Google OAuth2.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ ΠΎΠ±ΡΠ°Ρ ΠΈΠ΄Π΅Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°ΠΌ Π²ΡΠ΄Π°Π²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ?
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ oauth2 (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ):
Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²:
Π 1 access_token ΠΈ refresh_token ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ (Π² Π²Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Google) ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ. Π₯Π°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ ΡΠ΅Π°Π½Ρ, Π½ΠΎ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π°ΡΠΈΠΌ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎ 2 Ρ Π°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΡΠ°ΡΡ access_token ΠΈ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ» Π΄ΠΎΡΡΡΠΏ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π°ΠΊΠ΅Ρ Π·Π°Π²Π»Π°Π΄Π΅Π΅Ρ access_token, Ρ Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, refresh_token ΠΈ clientid/secret ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ oauth2 ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠ°ΠΉΠΌ-Π°ΡΡ Π½Π° ΡΠΎΠΊΠ΅Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ°:
Π 1) ΠΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΈ Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΡΠΊΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ access_token Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
ΠΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ Ρ Π·Π½Π°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π²:
Π₯ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅/ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠΉΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π±ΡΠΊΡΠ½Π΄-ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΠ΅ΠΊΡΠ΅Ρ ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ²ΠΊΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ access_token ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΊΠ»ΡΡ ΡΠ΅Π°Π½ΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π 1) ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΠ΅ΠΊΡΠ΅Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠΌ. ΠΡΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΡΡΠΎ Π²Ρ, Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. Access_token ΠΈ refresh_token ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π½Π° ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²ΠΎΠΈ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π ΡΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Π΄Π»ΠΈΠ½Π° access_token Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π·Π»ΠΎΠΌΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ refresh_token Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎ ΠΈ access_token. Π 2) ΠΊΠ»ΠΈΠ΅Π½Ρ/ΡΠ΅ΠΊΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ. ΠΠ΄Π΅ΡΡ Π΄Π»ΠΈΠ½Π° ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ access_token ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Ρ Π°ΠΊΠ΅Ρ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ.
ΠΠ»ΠΈΠ½Π° ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ΄Π΅ΡΡ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π·Π°ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΡΠ΅ΠΊΠ°ΡΡ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ access_token. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΡΠΎ-ΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌ. Π§ΡΠΎ-ΡΠΎ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ»ΡΡΠ΅.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΏΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΡΠ²Π΅ΡΠ°ΠΌ:
ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΈΡΠΊ ΠΊΡΠ°ΠΆΠΈ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ «ΠΠΎΡΠΈΡΠ΅Π»Ρ» (ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ RFC6750).
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΠΊΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ:
Π‘Π΅ΡΠ²Π΅ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ (Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ SSL/TLS, ΠΌΠ΅Π½ΡΡΠ°Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ Π·Π°ΡΠΈΡΡ ΠΈ Ρ.Π΄.). Π‘Π΅ΡΠ²Π΅ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΉ Π·Π°ΡΠΈΡΠ΅.
Π’ΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠ³ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ°Ρ HTTP, ΠΆΡΡΠ½Π°Π»Π°Ρ ΠΈ Ρ.Π΄., ΠΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΊΠΎΠ½Π½ΠΎ ΡΠΎΠ±ΡΠ°Π½Ρ Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ . ΠΡΠΈ ΡΠ»Π΅Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΌΠ΅Π½ΡΡΡ Π² ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ (ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ»ΡΠΆΠ±Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ Ρ.Π΄.).
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Backend RS ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΠΌ, Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌ Π΄ΠΎΠ²Π΅ΡΠΈΡ.
Π’ΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π°ΠΆΠ΄Ρ ΠΏΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌ ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ: ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ «ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ» ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ). ΠΡΠΎ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΌΡΡΠ»Ρ: ΡΠΎΠΊΠ΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ Π·Π°ΡΠΈΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ, ΠΎΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ ΠΌΠ΅ΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π·Π»ΠΎΠΌΠ°Π½ΠΎ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π½Π΅Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΠΎΠΌΡ ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ.
Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΆΠΈΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠΎΠ³Π΄Π° ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² GCM ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ InstanceID?
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ GCM ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΈΡΠΊΠ°Π», ΠΊΠ°ΠΆΡΡΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΡΡΠ½ΡΠΌΠΈ. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Ρ Π·Π°ΠΏΡΡΠ°Π»ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ². (ΠΠ»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ, Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Ρ Android.)
ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ (ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΏΡΠ°Π²ΡΡΠ΅ ΠΌΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΠ±Π°ΡΡΡ), ΠΌΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»ΡΡ API ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ, Ρ ΠΌΠΎΠ³Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½ ΡΠ΅ΡΠ΅Π· InstanceID, Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅. Π― ΡΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠ°Π»ΡΡ. Π instanceid-ΡΡΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ? ΠΠ½Π° ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ? ΠΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ (ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ)? ΠΠΎΠ·Π²ΠΎΠ½ΠΈΠ² Π² InstanceID.getInstance Ρ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ InstanceID, ΠΈΠ»ΠΈ ΠΎΠ½ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΈΡΡΠ΅ΡΠ΅Ρ ΠΈ Π΄Π°ΡΡ ΠΌΠ½Π΅ Π½ΠΎΠ²ΡΠΉ? ΠΡΡΡ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅, Π²ΡΠ·ΡΠ²Π°Ρ getID ()? ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π²Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΠΉ InstanceID ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ getID (), ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ. (ΠΠ»Ρ ΡΡΡΠ»ΠΊΠ°, Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ: https://developers.google.com/instance-id/)
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ InstanceID, ΠΌΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² GCM, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° ΠΌΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΡΠΎΡ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΡ GCM, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ InstanceID Π΄Π»Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ GcmListenerService ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΌΠ½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ onMessageReceived? ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ (ΠΊΡΠΎΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π² AndroidManifest)? ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ InstanceID? ΠΠ½ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π½Π°Π΅Ρ?
ΠΊΠΎΠ³Π΄Π° ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΠΊΠ΅Π½ΠΎΠ²? Π£ Π½ΠΈΡ Π΅ΡΡΡ ΡΡΠΎΠΊ Π³ΠΎΠ΄Π½ΠΎΡΡΠΈ? Π― Ρ ΡΠ°Π½Ρ ΡΠΎΠΊΠ΅Π½ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΡΡΠ΅ΠΊΠ»ΠΈ? Π― Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠ³Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ InstanceID ΠΈ ΡΠΎΠΊΠ΅Π½, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π»Π΅Π³ΠΊΠΈΠΌ, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠ°ΡΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ? ΠΠ°ΠΊ ΡΡΠ΅ΡΠ΅ΡΡ ΡΡΠ°ΡΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°? ΠΠ°ΠΆΠ΅ΡΡΡ, Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ APNS Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ iOS Π²Π΅ΡΠ΅ΠΉ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΈΡΡΠ΅ΠΊΡΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΠ΅ΡΠ΅ΡΡ ΠΈΡ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
3 ΠΎΡΠ²Π΅ΡΠΎΠ²
Π― ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π·Π°Π΄Π°Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΡΠ°ΠΌ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ GCM. ΠΠΎΡΠ»Π΅ Π²ΠΎΠ·ΠΈΡΡΡΡ Ρ Π½ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ, Π²ΠΎΡ ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π½Π° Π²Π°ΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ.
ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ (ΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠΏΡΠ°Π²ΡΡΠ΅ ΠΌΠ΅Π½Ρ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΠ±Π°ΡΡΡ), ΠΌΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»ΡΡ API ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ, Ρ ΠΌΠΎΠ³Ρ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½ ΡΠ΅ΡΠ΅Π· InstanceID, Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
InstanceID Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ?
ΠΏΠΎΡ ΠΎΠΆΠ΅, ΠΎΠ½ Π½Π°Π·Π½Π°ΡΠ΅Π½, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ.
ΡΡΠΎ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ? ΠΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ (ΠΈΠ»ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ)? ΠΠΎΠ·Π²ΠΎΠ½ΠΈΠ² Π² InstanceID.getInstance Ρ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ InstanceID, ΠΈΠ»ΠΈ ΠΎΠ½ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΈΡΡΠ΅ΡΠ΅Ρ ΠΈ Π΄Π°ΡΡ ΠΌΠ½Π΅ Π½ΠΎΠ²ΡΠΉ?
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΡΠ°Π±ΠΈΠ»Π΅Π½, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ, Π΅ΡΠ»ΠΈ:
Π΅ΡΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΡΠ°Π» Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ getId (), ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°.
Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠΈΡΡΠΊΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π²ΡΠ΅ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π²Π΅ΡΠ½ΠΎ.
Π΅ΡΡΡ Π»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΠ΅, Π²ΡΠ·ΡΠ²Π°Ρ getID ()?
ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ API ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠΎ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²Π°Ρ.
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ InstanceID, ΠΌΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² GCM, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° ΠΌΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΡΠΎΡ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΡ GCM, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ InstanceID Π΄Π»Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ GcmListenerService ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΌΠ½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ onMessageReceived? ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠ³ΠΎ (ΠΊΡΠΎΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π² AndroidManifest)? ΠΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ InstanceID? ΠΠ½ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π·Π½Π°Π΅Ρ?
Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΌΠΎΠ³Ρ ΡΡΠ΄ΠΈΡΡ, Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ InstanceId Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈ Π½Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΎΠ½Π° ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ GcmReceiver ΠΈΠ»ΠΈ GcmListenerService.
ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΆΠ΅ΡΠΎΠ½Ρ ΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Ρ? Π£ Π½ΠΈΡ Π΅ΡΡΡ ΡΡΠΎΠΊ Π³ΠΎΠ΄Π½ΠΎΡΡΠΈ?
Π― ΡΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ID, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ·Π½Π°ΡΡ ΠΎ ΡΠΎΠΊΠ΅Π½Π°Ρ , ΠΈΡΡΠ΅ΠΊΠ°ΡΡΠΈΡ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Android InstanceID:
ΡΠ»ΡΠΆΠ±Π° ID ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΆΠ΄ΡΠ΅ 6 ΠΌΠ΅ΡΡΡΠ΅Π²), Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΊΠΎΠ³Π΄Π°:
ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ InstanceIDListenerService ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ onTokenRefresh() Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ.
Π― Ρ ΡΠ°Π½Ρ ΡΠΎΠΊΠ΅Π½ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π½ΠΎ Π΅ΡΠ»ΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΡΡΠ΅ΠΊΠ»ΠΈ?
Π½Π° ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ GCM Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ GCM ΠΎΡΠ²Π΅ΡΠΈΡ Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΎΠΊΠ΅Π½Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ push-ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ.
Π― Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠ³Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ InstanceID ΠΈ ΡΠΎΠΊΠ΅Π½, ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π»Π΅Π³ΠΊΠΈΠΌ, Π½ΠΎ ΡΠΎΠ³Π΄Π° ΡΡΠ°ΡΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ?
ΠΌΠΎΠΈ ΡΠ΅ΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π΄Π°, ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ.
ΠΠ°ΠΊ ΡΡΠ΅ΡΠ΅ΡΡ ΡΡΠ°ΡΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°? ΠΠ°ΠΆΠ΅ΡΡΡ, Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ APNS Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ iOS Π²Π΅ΡΠ΅ΠΉ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΈΡΡΠ΅ΠΊΡΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΡΠ΅ΡΠ΅ΡΡ ΠΈΡ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
Π― Π²ΡΠ΅ Π΅ΡΠ΅ ΠΈΠ·ΡΡΠ°Ρ ΡΡΠΎ ΠΈ Π±ΡΠ΄Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΡΠΌΠΎΠ³Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΡΡΠ½ΠΈΡΡ.
@pumpkinpie65 ΠΈ @B. Roth Π²ΠΎΡ ΡΡΠΎ Ρ ΡΠ΄Π΅Π»Π°Π», ΡΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ Π² ΠΌΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
Π² GCM Π΅ΡΡΡ ΠΎΠΏΡΠΈΡ «dry run» ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ/ΡΠΏΠΈΡΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ dry-run Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ, ΠΎΠ½ Π½Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΠ²Π΅Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Ρ(200), Π° ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ 200 ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠΈΠΈ dry-run, ΡΠΎ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠ²Π΅Ρ ΠΎΡ GCM.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°?
Instance ID ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Android ΠΈ iOS, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ/ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Chrome.
ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄Π»Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΡΠΆΠ±Π°ΠΌΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ID ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
ΠΊΠΎΠ³Π΄Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ?
Π΅ΡΠ»ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΡΠ°Π» Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ getId (), ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°. ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠ°Π²ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ID ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΈΠ»ΠΈ ΡΠ»ΡΠΆΠ±Π°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ getToken (ΡΡΡΠΎΠΊΠ°, ΡΡΡΠΎΠΊΠ°).
ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»ΡΡΠΈ?
ΡΠ»ΡΠΆΠ±Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΆΠ΄ΡΠ΅ 6 ΠΌΠ΅ΡΡΡΠ΅Π²), Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΊΠΎΠ³Π΄Π°:
ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ SSL ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Π°; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. ΠΡΠΎΡ Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ»ΡΠΆΠ±Π° ID ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°.
Π²ΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎΠ± ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° Π² Firebase Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎΡΡΠ½ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ
ΠΠΎΠ²Π΅Π»ΠΎΡΡ ΠΌΠ½Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΡΠΎΠ΄Π΅ Π±Ρ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΌΠ°ΡΡΠ° ΠΈ Π½Π΅ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄ΠΎΠΉΡΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π½Π΅ ΠΎ ΡΠΎΠΌ ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, Π° ΠΎ ΡΠΎΠΌ ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π ΡΠ°ΠΊ ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΡΠ΅, Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ API ΡΠ°ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π½ΠΎ Π½ΡΠ°Π½ΡΡ ΡΠΊΡΡΡΡ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎ JWT ΡΠΎΠΊΠ΅Π½ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π΅Π³ΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»ΡΡΠ°ΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ JWT ΡΠΎΠΊΠ΅Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ ΠΏΡΡΠ΅ΠΌ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π° idToken ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΅Π³ΠΎ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ idToken ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ promise ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π° ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡ ΠΎΠ΄ΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ google ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅, Π² JS, ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ. Π ΡΡΠΎΠΌ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° https://github.com/auth0/node-jsonwebtoken, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±Π΅Π· Π²ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠΊΠ΅Π½Π° Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ header ΡΠ°ΠΊ ΠΈ payload. ΠΡ Π·Π½Π°Π΅ΠΌ ΡΡΠΎ jwt ΡΠΎΠΊΠ΅Π½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ
ΠΠ°ΠΊ ΡΡΠΈΠ³Π³Π΅ΡΠΈΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΌΠ΅Π½Ρ ΡΠΎΠΊΠ΅Π½Π°
ΠΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ firebase, ΡΡΠ½ΠΎ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΠ΅ onIdTokenChanged.
onIdTokenChanged(nextOrObserver, error, completed) returns function()
ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΈΡΡΠ΅ΠΊΠ°ΡΡ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° OAuth2 Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΠΊΠ΅Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΎΡΠΊΠ° ΠΏΡΠ»Ρ.
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΌΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ² ΠΎΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ° Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ Π²ΡΠΎΡΠΎΠΌ.
Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ » client_id ΠΈ client_secret, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π²ΡΡΡΠΎΠ΅Π½Ρ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ client_secret ΡΠ²Π½ΠΎ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΠ΅Ρ.»( Google). ΠΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΡΠ°ΠΊ, Π² ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ? ΠΡΠΎ «Ρ ΠΎΡΠΎΡΠΎ», ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ° Π±Π΅Π· ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΡΠ°ΡΡΡ ΡΠΎΠΊΠ΅Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ?
3 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΠΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΉ Π½Π΅ ΠΈΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΉ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡΡ Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ²Π΅ΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΊΡΠ°Π» Π²Π°Ρ ΠΌΠ°ΡΠΊΠ΅Ρ, ΠΠ½ ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΡΠΊΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° Π² ΠΎΡΠ²Π΅Ρ. Π’ΠΎΠ³Π΄Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
.
ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΠ°ΡΠΊΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΠΊΠ΅ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ OAuth 2 (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ) ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π»ΠΈΡΠ½ΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΌΠ°ΡΠΊΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΡΠ΅ΠΊΡΠ΅ΡΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅, ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ. Google, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Android Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ. ΠΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ ΡΡΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Android Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π² Google API Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ Π·Π°ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½ΠΎ Π½Π΅ ΡΠ΅ΠΊΡΠ΅Ρ Π² ΠΎΡΠ²Π΅Ρ. ΠΡΠΈ Π²ΡΠ΄Π°ΡΠ΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Google ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅ΡΠΈΡΡ, Π±ΡΠ»ΠΎ Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΈΡΠ΅ ΠΆΠ΅ΡΠΎΠ½Ρ Π½Π° Π΅Π³ΠΎ ΠΈΠΌΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π»ΠΈΡΠ½ΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠ» ΡΠΊΡΠ°Π΄Π΅Π½. Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΊΠΎΠ³Π΄Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠ΄Π°Π΅ΡΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΎΡΠ²Π΅ΡΠΎΠΌ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ°. ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½ ΠΈ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π·Π°ΠΊΠΎΠ½Π½ΡΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΈ.
ΡΠ°ΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π½Π΅ ΠΈΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΡΠΊΡΠ°Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π°. ΠΡΠ»ΠΈ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΊΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ° Π±Π΅Π· ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠΎ Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²Ρ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ»ΠΈ ΡΠΎΠΊΠ΅Π½ Π½Π΅Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ΅Π½ ΠΈ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, ΡΠΎ Π΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π·Π°ΠΌΠ΅Π½Ρ ΡΠΊΡΠ°Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΊΠ½ΠΎ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π·Π»ΠΎΠΌΠ°ΡΡ Π²Π°Ρ ΡΠΎΠΊΠ΅Π½.
ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΌΠ½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 3 ΡΠ°ΡΠ°, ΡΡΠΎΠ±Ρ Π²Π·Π»ΠΎΠΌΠ°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΊΠ΅Π½, Π½ΠΎ ΡΠΎΠΊΠ΅Π½ Π΄ΠΎΡΡΡΠΏΠ° Ρ ΠΎΡΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΄Π²ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ, ΠΊ ΡΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π²Π·Π»ΠΎΠΌΠ°ΡΡ Π²Π°ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ, ΡΠΎΠΊΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ, ΠΈ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°ΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π°. ΠΡΠ»ΠΈ ΡΠΎΠΊΠ΅Π½ Π½Π΅ ΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° ΠΈ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ.
ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° OAuth2 Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΡΠ΅ΠΊΠ°ΡΡ (ΠΈΠ»ΠΈ, ΡΠΊΠΎΡΠ΅Π΅, ΠΎΠ½ΠΈ ΠΈΡΡΠ΅ΠΊΠ°ΡΡ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ).
ΠΌΠ°ΡΠΊΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ² Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ², Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΡΡΡΡ, ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. ΠΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½Π΅ ΡΡΠ΅Π±ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ.
Π² ΡΠ΅Π»ΠΎΠΌ, Ρ ΠΎΡΡ, ΡΠΎΠΊΠ΅Π½Ρ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΡΠ°Π΄Π΅Π½Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈΠ»ΠΈ Π°ΡΠ°ΠΊΠ°ΠΌΠΈ MITM Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅. SSL ΡΠΏΠΎΡΠΎΠ±Π΅Π½ MITM, Π΅ΡΠ»ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ. ΠΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΡΠ΅ΡΡΠΌ (ΠΎΠ½ΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠ°ΠΌΠΎΠ·Π°Π²Π΅ΡΡΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌ MITM Π²Π΅ΡΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ°ΡΠΈΠΊ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΡΠ°Π΄Π΅Π½Ρ Π² ΠΏΡΡΠΈ, ΠΎΠΏΠ°ΡΠ½ΠΎ.
ΡΠΎΠΊΠ΅Π½Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ²ΠΈΡΠ΅Π»Ρ Π½Π΅ ΡΠ»Π°Π±Π΅Π΅, ΡΠ΅ΠΌ Π»ΡΠ±Π°Ρ Π΄ΡΡΠ³Π°Ρ ΡΠΎΡΠΌΠ° ΡΠΎΠΊΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²Π°Ρ, ΠΊΠ°ΠΊ Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΊΡΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ , Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΏΡΠ°Π²Π»Ρ ΡΡΡΠ»ΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΡΠΌΠΎΠ³Ρ Π΅Π³ΠΎ ΠΎΡΠΊΠΎΠΏΠ°ΡΡ.) ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠΊΠ΅Π½Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ²ΠΈΡΠ΅Π»Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠΏΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Ρ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠΊΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΡΠ΅ΠΊΡΠ΅ΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠΎΠΊΠ΅Π½Π°Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ²ΠΈΡΠ΅Π»Ρ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΡΠΎΠΊΠ΅Π½Ρ-Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ Π½Π΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (Ρ ΠΎΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ). Π‘ΠΌ.NIST Π£ΡΠΎΠ²Π΅Π½Ρ 3 ΡΠΎΠΊΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π°ΡΠ°ΠΊΠΈ ΡΠΎΠΊΠ΅Π½Ρ-Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π’ΠΎΠΊΠ΅Π½Ρ ΠΠ° ΠΡΠ΅Π΄ΡΡΠ²ΠΈΡΠ΅Π»Ρ OAuth. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΎΠΊΠ΅Π½Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ²ΠΈΡΠ΅Π»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°ΡΡ ΠΊΡΠ°ΠΆΡ ΡΠΎΠΊΠ΅Π½Π°.
ΡΠΎΠΊΠ΅Π½Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ²ΠΈΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠΎΠ·Π²Π°Π½Ρ, ΡΡΠΎ ΠΏΡΠ°Π²Π΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Π΄ΠΎΡΡΡΠΏΠ° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΡΠ΅ΠΊΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ. Π§Π΅ΠΌ Π΄ΠΎΠ»ΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΊΠ΅Π½, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π΅Π³ΠΎ ΠΊΡΠ°ΠΆΠΈ. ΠΠ°ΡΠΊΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΎΠΏΠ°ΡΠ½Π΅Π΅ ΡΠΊΡΠ°ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΡΠΈΡΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. OAuth2 ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ API ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π° Π²ΡΠ΅ΠΌΡ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΊΠ΅Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π½Π΅ΡΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΉ ΡΡΠ΅ΡΠ±, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΊΠ»ΠΈΠ΅Π½Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠ»ΡΡ. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ Π°ΡΠ°ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π½Π°ΡΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OAuth Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ Π²Π°ΡΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π²ΡΠΎΡΠΎΠΉ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° OAuth Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΠΌΠ΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈΡ ΠΊΠ»ΡΡΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ, ΠΈ Π΄Π»Ρ Π½ΠΈΡ Ρ Π²ΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ Facebook ΠΈΠ»ΠΈ Google, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»Π³ΠΎΠ²Π΅ΡΠ½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ, ΡΠ΅ΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π° Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ²ΠΈΡΠ΅Π»Ρ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°Π³ΠΈ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΈΡΡΠΈΡΡ ΠΌΠ°ΡΠΊΠ΅Ρ. ΠΡΠ»ΠΈ ΡΠΎΠΊΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠΊΡΠ°Π΄Π΅Π½, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΎΡΠΎΠ·Π²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ³Π΄Π° ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. Π’ΠΎΠΊΠ΅Π½ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π½ΠΎΡΠΈΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ·Π²Π°Π½, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΎΡΠΎΠ·Π²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΡΡΠ»ΠΎΡΠ½ΡΠΉ ΠΌΠ°ΡΠΊΠ΅Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ·Π²Π°Π½, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎ, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ· Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ Π½Π° OAuth, Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΠΉ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ Π±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠΊΠ΅Π½Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΡΠΎ Π±ΠΎΠ½ΡΡ, Π½ΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΎ Π·Π°ΡΠΈΡΠ°Π΅Ρ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Ρ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΡΠΈΡΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΌΡΠ³ΠΊΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Ρ, a la Google authenticator, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠ²Π΅ΡΠ΄Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΄Π΅ΡΠΆΠ°Π»Π° Π°Π½Π°Π»ΠΈΠ· Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΡΠ΅Π½Ρ ΡΠΌΠ½ΡΠΌΠΈ Π»ΡΠ΄ΡΠΌΠΈ.