Lorawan-stack: ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи (для Π·Π°ΠΌΠ΅Π½Ρ‹ прилоТСния oauth)

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 4 ΠΎΠΊΡ‚. 2019  Β·  32ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: TheThingsNetwork/lorawan-stack

РСзюмС

Π’ настоящСС врСмя Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с нашим ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ OAuth, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³ΠΎΠΌ ΠΈ Ρ‚. Π΄. Π­Ρ‚ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС это Π±ΠΎΠ»Π΅Π΅ дСйствСнным Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния account , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позаботится ΠΎ всС эти Π·Π°Π±ΠΎΡ‚Ρ‹.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π°ΠΌ это Π½Π°Π΄ΠΎ?

  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ функция ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² ⟢ #488
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³ ΠΈ контСкст для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ⟢ #730
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСссиями ⟢ #1217
  • ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² процСссС Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ OAuth ⟢ #265

Π§Ρ‚ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ? Π§Ρ‚ΠΎ Ρ‚Ρ‹ видишь сСйчас?

  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом

Π§Π΅Π³ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚? Π§Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ?

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выступаСт Π² качСствС поставщика OAuth, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ.

ΠžΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π°Ρ обстановка

Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

Как Π²Ρ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚Π΅ это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² отсутствии ясности ΠΈ контСкста для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ нСзависимый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

  • отсутствиС Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³Π° ΠΈ контСкста
  • ΠΎΡ‡Π΅Π½ΡŒ ΡƒΡ€Π΅Π·Π°Π½Π½Ρ‹ΠΉ ΠΈ Π½Π΅ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс
  • консоль дСйствуСт Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½Π° сама ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ (сообщСниС Β«Π’ΠΎΠΉΡ‚ΠΈΒ» вмСсто Β«Π’ΠΎΠΉΡ‚ΠΈ с вашСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью {имя слуТбы поставщика OAuth}Β», пропуск Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ)
    Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ наглядности Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ, Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΌΡ‹ΠΌ ΠΈ цСлСустрСмлСнным:
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ настраиваСмый Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³
  • РаскройтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

    • ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°

    • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом

    • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ авторизациями

    • Настройки профиля (ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ/Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ профиля)

Π― создал Ρ‚Ρ€ΠΈ каркаса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ я ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ сСбС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ каркасы

account_login
account_overview
account_profile_settings
(ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй, встроСнный Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ)

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° слияниС?

Π΄Π°. @johanstokking @htdvisser , поТалуйста, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ, считаСтС Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ стоит ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ.

identity server uweb umbrella

ВсС 32 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π§Ρ‚ΠΎ касаСтся всСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ Π²Ρ…ΠΎΠ΄Π°/Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ консолью ΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ oauth, Π²ΠΎΡ‚ ΠΌΠΎΠΉ ΠΏΠ»Π°Π½:

  • ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Account для прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи (вмСсто Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ° TTS) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для консоли (cc @pierreph)
  • ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… экрана Π²Ρ…ΠΎΠ΄Π° Π² систСму для консоли ΠΈ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Π±Π»ΠΈΠΆΠ΅ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ

    • ΠœΡ‹ ΡƒΠ΄Π°Π»ΠΈΠΌ экран Π²Ρ…ΠΎΠ΄Π° Π² консоль /console/login

    • Консоль автоматичСски ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ Π½Π° страницу Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи /account/login , Ссли Ρƒ Π½Π΅Π΅ Π½Π΅Ρ‚ (Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ) Ρ‚ΠΎΠΊΠ΅Π½Π° доступа.

    • Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° Π² консоль, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса пСрСнаправлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² консоль послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π° Π² систСму.

    • Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса консоли ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ сохранСнного Ρ‚ΠΎΠΊΠ΅Π½Π° доступа, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ ΠΈΠ· прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ всСгда придСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ свои ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ снова Π²ΠΎΠΉΡ‚ΠΈ Π² консоль.



      • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ способ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· систСмы ΠΈΠ· запросов ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ консоль ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ находятся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ источникС).


      • Π’ v2 ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ простой ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ /users/logout , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· систСмы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΈΠ· любого мСста.


      • Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ способы достиТСния Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого, сохраняя ΠΏΡ€ΠΈ этом Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ CSRF.



    • Новый ΠΏΠΎΡ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ консоли v2; ΠΌΡ‹ Π² основном ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΡƒΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° консоли ΠΈ сСрвСра Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ UX, Ρ‡Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ консоль являСтся своСго Ρ€ΠΎΠ΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ особого случая.

    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΌ придСтся ΠΏΠ΅Ρ€Π΅ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ этот ΠΏΠΎΡ‚ΠΎΠΊ, Ссли ΠΌΡ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Ρ…ΠΎΠ΄Π° Π²

Если я Π½Π΅ ΡƒΡΠ»Ρ‹ΡˆΡƒ ΠΆΠ°Π»ΠΎΠ± Π½Π° этот ΠΏΠ»Π°Π½, я Π½Π°Ρ‡Π½Ρƒ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ.

Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½. Π― согласСн, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ явный Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· консоли ΠΈ ΠΎΡΡ‚Π°Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π² систСмС Ρ‡Π΅Ρ€Π΅Π· OAuth Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС, хотя это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников? Π Π°Π·Π²Π΅ это Π½Π΅ Π±Ρ‹Π» Π±Ρ‹ простой двухэтапный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄; «страница Π²Ρ‹Ρ…ΠΎΠ΄Π°Β» для удалСния сохранСнного Π² консоли Ρ‚ΠΎΠΊΠ΅Π½Π° доступа, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Ρ‰ΡƒΡŽ страницу Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «УчСтная запись»? Или Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ это Π±Π΅Π· пСрСнаправлСния, Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π°?

Π§Ρ‚ΠΎ касаСтся Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚ΡŒ Π²Π΄ΠΎΡ…Π½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΈΠ· Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы OpenID Connect. Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ Ρ€Π΅Π·ΡŽΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь: https://medium.com/@robert.broeckelmann/openid -connect-logout-eccc73df758f

Π—Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½. Π― согласСн, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ явный Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· консоли ΠΈ ΠΎΡΡ‚Π°Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π² систСмС Ρ‡Π΅Ρ€Π΅Π· OAuth Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ интСрфСйсС, хотя это Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ.

Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· систСмы ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… источников? Π Π°Π·Π²Π΅ это Π½Π΅ Π±Ρ‹Π» Π±Ρ‹ простой двухэтапный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄; «страница Π²Ρ‹Ρ…ΠΎΠ΄Π°Β» для удалСния сохранСнного Π² консоли Ρ‚ΠΎΠΊΠ΅Π½Π° доступа, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Ρ‰ΡƒΡŽ страницу Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «УчСтная запись»? Или Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ это Π±Π΅Π· пСрСнаправлСния, Π½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π°?

Двухэтапный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. МСня бСспокоило Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ CSRF, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой, Ρƒ ΠΊΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ссылка для Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ±Π»Π°Π·Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· своСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. Π’ настоящСС врСмя это Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ со стСком v2 ( Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² здСсь, Π²Ρ‹ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚Π΅ ΠΈΠ· систСмы ).
Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ это ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, Π½ΠΎ Π½Π΅ совсСм Π»ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°.

Π― ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π» довольно Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ для Π½ΠΎΠ²ΠΎΠ³ΠΎ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи:

  • Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ консолью ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ)
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ настройки профиля, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ профиля
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ авторизациями (просмотр ΠΈ ΠΎΡ‚Π·Ρ‹Π²)
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом (просмотр ΠΈ ΠΎΡ‚Π·Ρ‹Π²)
  • РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, которая ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»Π° ΠΊ пустым Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°ΠΌ ΠΏΡ€ΠΈ использовании ΠΎΠ±Ρ‰ΠΈΡ… зависимостСй модуля css.

Π― сдСлал это, ТСстко Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π² Ρ‚ΠΎΠΊΠ΅Π½ доступа, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ API стСка. Π’ настоящСС врСмя я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒΡΡ Π²ΠΏΠ΅Ρ€Π΅Π΄ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ знаю, ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ доступа для прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи.
ΠŸΡ€ΡΠΌΠΎ сСйчас Β«ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ oauthΒ» β€” это просто SPA, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сСрвСра oauth (Π²Ρ…ΠΎΠ΄ Π² систСму, Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· систСмы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ, связанныС с ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ трСбуСтся Ρ‚ΠΎΠΊΠ΅Π½ доступа).
@htdvisser упомянул ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ наша ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ идСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ oauth с использованиСм Ρ‚ΠΈΠΏΠ° прСдоставлСния пароля. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΈΡΠΊΡƒΡΡΠΈΡŽ ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ:

  • Π² зависимости ΠΎΡ‚ источника Ρ‚ΠΈΠΏ прСдоставлСния пароля Π½Π΅ рСкомСндуСтся Π΄Π°ΠΆΠ΅ для Β«ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ…Β» ΠΈ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².
  • это ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ экрана Π²Ρ…ΠΎΠ΄Π° Π² систСму (рядом с экраном Π²Ρ…ΠΎΠ΄Π° Π² систСму ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° oauth)
  • МнС интСрСсно, Π΅ΡΡ‚ΡŒ Π»ΠΈ способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ доступа Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° oauth Π±Π΅Π· использования Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΡƒΠΆΠ΅ выполняСм Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния oauth
  • Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ прСдоставлСниС пароля для прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ для консоли.

Π― ΡƒΠΆΠ΅ сказал @htdvisser, Ρ‡Ρ‚ΠΎ вСсь этот аспСкт Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ/Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ нСсколько ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΠ΅Ρ‚ мСня, ΠΈ я Π½Π΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽ сСбя достаточно освСдомлСнным, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСсти ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Ρ‚Π°ΠΊΠΎΠΉ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊ бСзопасности вопрос.

ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠΎΡ‚ΠΎΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π°ΡˆΠΈΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π° Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ (см. Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ), Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Ρ‹ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ ΠΈΠ· систСмы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ состояниСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π˜Ρ‚Π°ΠΊ, ΠΌΠ½Π΅ понадобится ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΈ Π²ΠΊΠ»Π°Π΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. Как ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ это ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ?

Π² зависимости ΠΎΡ‚ источника Ρ‚ΠΈΠΏ прСдоставлСния пароля Π½Π΅ рСкомСндуСтся Π΄Π°ΠΆΠ΅ для Β«ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ…Β» ΠΈ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Π”Π°, прСдоставлСниС пароля Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, см. ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ обоснованиС здСсь: https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section -3.4

Π’ настоящСС врСмя Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ # 2148

Π˜Ρ‚Π°ΠΊ, послС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ участия Π² этом, я Π΄ΡƒΠΌΠ°ΡŽ, ΠΌΠ½Π΅ Π½ΡƒΠΆΠ΅Π½ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ идСя прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ oauth ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности для управлСния профилями ΠΈ сСансами (см. OP). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ потрСбуСтся Ρ‚ΠΎΠΊΠ΅Π½ доступа, Ρ‡Ρ‚ΠΎ, ΠΏΠΎ сути, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ поставщиком ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ OAuth.

Моя идСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OAuth ( account ) ΠΈ внСшний интСрфСйс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ OAuth. Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈ поставщик OAuth (Π²Ρ…ΠΎΠ΄ Π² систСму, рСгистрация, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ Ρ‚. Π΄.), ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи (настройки профиля, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ) ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ это тСхничСскоС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ OAuth ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. На сСрвСрной части ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи станСт Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° oauth . Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния внСшнСго интСрфСйса ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π΅ Π²Π΅Ρ‰ΠΈ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° ( account.js ).
Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ это смСшиваниС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • /account/login для Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎ oauth [ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° OAuth]
  • /account/register для рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ [ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ поставщика OAuth]
  • /account/forgot-password Π·Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ [ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ поставщика OAuth]
  • /account/client/login/ttn-stack для Π²Ρ…ΠΎΠ΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ) [ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° OAuth]
  • /account/client/oauth/callback для ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠΎΠ΄ΠΎΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ [ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° OAuth]
  • /account обзорная страница ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° oauth [ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° OAuth]

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, оставив ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° OAuth ( /oauth Ρ‡Π΅Ρ€Π΅Π· pkg/oauth ) ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ( /account Ρ‡Π΅Ρ€Π΅Π· pkg/account ) ΠΊΠ°ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‰ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ с консолью. Π’ этом случаС поставщик OAuth Π±ΡƒΠ΄Π΅Ρ‚ нСсти ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° вопросы Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ собствСнного Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прСдставлСния, ΠΊΠ°ΠΊ Π² настоящСС врСмя. ВмСсто этого послС Π²Ρ…ΠΎΠ΄Π° Π² систСму ΠΎΠ½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ автоматичСски ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½.

Π― Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, которая Π² настоящСС врСмя связана с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями, Π½ΠΎ я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ Π»ΠΈ ΠΎΠ½ΠΎ привСсти ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ослоТнСниям. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ каТСтся Ρ‡ΠΈΡ‰Π΅, Π½ΠΎ вопрос Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/Π±Ρ€Π΅Π½Π΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅. НапримСр, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ ΠΎΠ±Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Β«ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи»? Или это Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ The Things Stack Single Sign On ΠΈ The Things Stack Account Application ?

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ вашС ΠΌΠ½Π΅Π½ΠΈΠ΅.

Π₯ΠΌ, сдСлав шаг Π½Π°Π·Π°Π΄, ΠΊΠ°ΠΊΠΎΠ²Π° Ρ†Π΅Π»ΡŒ прСвращСния прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π² ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OAuth? КакиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· OAuth Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹?

  • Настройки профиля (имя, элСктронная ΠΏΠΎΡ‡Ρ‚Π°, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ профиля)
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом (просмотр, ΠΎΡ‚Π·Ρ‹Π²)
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ (просмотр, ΠΎΡ‚Π·Ρ‹Π²)
  • (Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°-настройки, связанныС с TTES, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ)

ВсС ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚ΠΎΠΊΠ΅Π½Π° доступа, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это СдинствСнный способ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ RPC.

Нам Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ поставщика OAuth, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ внСшним, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«The Things Network CommunityΒ», ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ касаСтся управлСния полями сущности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, хранящСйся Π² The Things Stack, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠΈ @kschiffer. написал Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π²Ρ‹ΡˆΠ΅.

Наши ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ /api/v3/* Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² cookie, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ CORS. Они Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ API ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ доступа.

  • Настройки профиля (имя, элСктронная ΠΏΠΎΡ‡Ρ‚Π°, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ профиля)
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом (просмотр, ΠΎΡ‚Π·Ρ‹Π²)
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ (просмотр, ΠΎΡ‚Π·Ρ‹Π²)
  • (Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°-настройки, связанныС с TTES, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ)

ВсС ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚ΠΎΠΊΠ΅Π½Π° доступа, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это СдинствСнный способ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ RPC.

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‡Π°ΡΡ‚ΡŒΡŽ консоли, Π½ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ Π±Ρ‹, Ρ‡Ρ‚ΠΎ консоль Π±ΡƒΠ΄Π΅Ρ‚ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π― ΠΌΠΎΠ³ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ситуации, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями Π±Π΅Π· Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ консоли, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это я слишком ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽ πŸ€·β€β™‚οΈ.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, вопрос Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ…ΠΎΡ‚ΠΈΠΌ Π»ΠΈ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ консоль Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ инструмСнт для управлСния Π΄Π΅Π»Π°ΠΌΠΈ, связанными с ΡΠ΅Ρ‚ΡŒΡŽ. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈΠ±ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ управлСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния для всСх вопросов, связанных с TTS, Π»ΠΈΠ±ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ раздСлСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ прилоТСния/ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Π­Ρ‚ΠΎ стратСгичСский вопрос. Π― Π²ΠΈΠΆΡƒ случаи для ΠΎΠ±ΠΎΠΈΡ….

Π― Π½Π΅ Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ консоль (всС консоли, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ консоль Π΅ΡΡ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ кластСрС) Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Консоли Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для управлСния Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ OAuth, сСансами, основным адрСсом элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Π›ΡƒΡ‡ΡˆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи).

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ возвращаСтся ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ вопросу .

МоС мнСниС:

Π‘ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

  • ΠžΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎ (ΠΎΠ΄Π½ΠΎ мСсто для всСх вопросов, связанных с ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью)
  • Π‘ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΉ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³ / коммуникация
  • БоотвСтствиС исходному ΠΏΠ»Π°Π½Ρƒ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи
  • Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния внСшнСго интСрфСйса Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Π° новая Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаблон.
  • РСализация становится Π±ΠΎΠ»Π΅Π΅ слоТной/Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΉ (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи являСтся поставщиком ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ oauth)

Π Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄:

  • Π‘ΠΎΠ»Π΅Π΅ чистая ΠΈ традиционная рСализация
  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π±ΠΎΠ»Π΅Π΅ гибкая ΠΈ понятная
  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ рядом с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ oauth, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ нуТдаСтся Π² Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΌ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³Π΅ ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ.
  • Π‘ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ сборки (ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ°Ρ€Π³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π½Π΅ провСрял) ΠΈ большС Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ²

Π― склоняюсь ΠΊ ΡΠΌΠ΅ΡˆΠ°Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ.

  • Настройки профиля (имя, элСктронная ΠΏΠΎΡ‡Ρ‚Π°, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ профиля)
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом (просмотр, ΠΎΡ‚Π·Ρ‹Π²)
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ (просмотр, ΠΎΡ‚Π·Ρ‹Π²)
  • (Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°-настройки, связанныС с TTES, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ)

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Π²Π΅Ρ€Π½ΠΎ? НС OAuth?

  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ рядом с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ oauth, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ нуТдаСтся Π² Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠΌ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³Π΅ ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Для Ρ‡Π΅Π³ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth?

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OAuth добавляСт Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ?

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Π²Π΅Ρ€Π½ΠΎ? НС OAuth?

Π”Π°, это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. Но ΠΏΠ»Π°Π½ состоял Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ нас сСйчас Π΅ΡΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ прилоТСния OAuth, станСт Ρ‡Π°ΡΡ‚ΡŒΡŽ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи.

Для Ρ‡Π΅Π³ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π΅Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth?

Для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ° OAuth), рСгистрации ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, сброса пароля. Π’ основном всС, Ρ‡Ρ‚ΠΎ связано с Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OAuth добавляСт Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° скорСС Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ: ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ просто Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ нашС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth функциями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ для прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°ΠΌ потрСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ доступа. Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΡƒΡ€ΠΈΡ†Ρ‹ ΠΈ яйца. Если Π±Ρ‹ сущСствовали Π΄Ρ€ΡƒΠ³ΠΈΠ΅ срСдства Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи (сСансы, авторизация ΠΈ Ρ‚.Β Π΄.), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° cookie сСанса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ OAuth, Ρ‚ΠΎΠ³Π΄Π° всС Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ½Π°Ρ‡Π΅. Но ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ я Π²ΠΈΠΆΡƒ, это Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎ.

ЯвляСтся Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ? Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π»ΠΈ ΠΎΠ½ ΠΏΠΎΡ‚ΠΎΠΊΠΈ пСрСнаправлСния для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² OAuth? Или это сам ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OAuth?


АкцСнт ΠΌΠΎΠΉ:

Моя идСя Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ OAuth ( account ) ΠΈ внСшний интСрфСйс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ OAuth . Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈ поставщик OAuth (Π²Ρ…ΠΎΠ΄ Π² систСму, рСгистрация, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ Ρ‚. Π΄.), ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи (настройки профиля, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ) ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ это тСхничСскоС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ OAuth ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ . На сСрвСрной части ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи станСт Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° oauth .

я Π²ΠΈΠΆΡƒ здСсь;

  • OAuth-ΠΊΠ»ΠΈΠ΅Π½Ρ‚
  • Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth
  • OAuth-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€
  • ΠΊΠ»ΠΈΠ΅Π½Ρ‚ прилоТСния ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи
  • ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ OAuth
  • ΠΊΠ»ΠΈΠ΅Π½Ρ‚
  • сСрвСрная Ρ‡Π°ΡΡ‚ΡŒ
  • ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°
  • ΠΏΠ°ΠΊΠ΅Ρ‚ oauth

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ я Π½Π΅ совсСм понимаю, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅.

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹?

  1. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  2. Π—Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ
  3. ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  4. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ
  5. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ профиля
  6. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСссиями
  7. OAuth-Π²Π΅Ρ‰ΠΈ

    1. Π­ΠΊΡ€Π°Π½ согласия (ΠΏΠΎΡ‚ΠΎΠΊ ΠΊΠΎΠ΄Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ OAuth)

    2. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ OAuth

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ 1-6 ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ касаясь OAuth, Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Π°Π½ΡΠΎΠ²ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅Ρ€Π½ΠΎ?

Π”Π° ΠΈΠ·Π²ΠΈΠ½ΠΈ. Π£ нас Π΅ΡΡ‚ΡŒ ряд нСфиксированных Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡŽΡ‚ объяснСниС. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, это Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ прСдставлСниС ΠΎ слоТности вопроса πŸ˜….

Π˜Ρ‚Π°ΠΊ, возьмСм статус-ΠΊΠ²ΠΎ:

OAuth-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€
ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ (Π° Π² нашСм случаС ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ) согласно спСцификации OAuth 2.0. Π’ нашСм случаС это ΠΏΠ°ΠΊΠ΅Ρ‚ pkg/oauth , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth (см. Π½ΠΈΠΆΠ΅) для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ (визуализация Π²Ρ…ΠΎΠ΄Π°, рСгистрация, прСдставлСния Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚. Π΄.).

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ OAuth
Π­Ρ‚ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° внСшнСм интСрфСйсС. Код нашСго внСшнСго интСрфСйса состоит ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π° oauth.js / console.js ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ части, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹.

OAuth-ΠΊΠ»ΠΈΠ΅Π½Ρ‚
ЗарСгистрированный ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ OAuth для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ консоль ΠΈΠ»ΠΈ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

ΠΏΠ°ΠΊΠ΅Ρ‚ oauth
ΠŸΠ°ΠΊΠ΅Ρ‚ Go, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ поставщика OAuth. Π­Ρ‚ΠΎ pkg/oauth .

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ здСсь задСйствованы Ρ‚Ρ€ΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слоя. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли ΠΌΡ‹ сохраним Ρ‚ΠΎΡ‚ ΠΆΠ΅ способ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ сСйчас, Π½Π°ΠΌ понадобится Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ всС описанныС Π²Ρ‹ΡˆΠ΅ Ρ€ΠΎΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ 1-6 ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ касаясь OAuth, Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ΅Π°Π½ΡΠΎΠ²ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅Ρ€Π½ΠΎ?

Π΄Π°. 1-4 ΡƒΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π±Π΅Π· oauth/Ρ‚ΠΎΠΊΠ΅Π½Π° доступа. 5 ΠΈ 6 Π² настоящСС врСмя Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π΅ доступа. 7. ii Π΅Ρ‰Π΅ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½. Если Π±Ρ‹ 5 ΠΈ 6 Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π±Π΅Π· Ρ‚ΠΎΠΊΠ΅Π½Π° доступа, Ρ‚ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ понадобился Π±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ oauth для этого. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ каТдая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ доступа Π² качСствС СдинствСнного срСдства Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Если Π±Ρ‹ 5 ΠΈ 6 Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π±Π΅Π· Ρ‚ΠΎΠΊΠ΅Π½Π° доступа, Ρ‚ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ понадобился Π±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ oauth для этого. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ каТдая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ доступа Π² качСствС СдинствСнного срСдства Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ для мСня большой смысл. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ°Ρ основа для Β«Ρ€Π΅ΠΆΠΈΠΌΠ° sudoΒ», ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ _Ρ‚ΠΎΠ»ΡŒΠΊΠΎ_ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° пароля. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ совпадСниС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ OAuth ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, Π½ΠΎ ΠΌΠ½Π΅ это совпадСниС Π½Π΅ каТСтся большим. Π― Π²ΠΈΠΆΡƒ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² сохранСнии Π²Π΅Ρ‰Π΅ΠΉ, посвящСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи.

Π›Π°Π΄Π½ΠΎ, Π·Π²ΡƒΡ‡ΠΈΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.
@htdvisser Π£ вас Π΅ΡΡ‚ΡŒ возраТСния? А Ссли Π½Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹/ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я полагаю, Ρ‡Ρ‚ΠΎ Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ этим Π² блиТайшСС врСмя (?).

Как я ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π» Ρ€Π°Π½Π΅Π΅, наши ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ /api/v3/* Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² cookie, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ CORS. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² cookie, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ наши Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ CORS, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ отправлял ΠΊ этим ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ пСрСкрСстныС запросы с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ подлинности Ρ„Π°ΠΉΠ»ΠΎΠ² cookie.


Наш API β€” это gRPC, Π° аутСнтификация выполняСтся с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Authorization , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распространяСтся Π½Π° gRPC ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ запроса. РСализация сСансовой Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏ SessionToken ΠΊ pkg/auth/auth.go
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π² модСль Session , Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ API ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ доступа.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ПО, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСанса ΠΈ сСкрСт сСанса ΠΈΠ· Ρ„Π°ΠΉΠ»Π° cookie ΠΈ пСрСнаправляСт ΠΈΡ… Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Authorization Π² Π²ΠΈΠ΄Π΅ SessionToken.
  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ SessionToken ΠΊΠ°ΠΊ case ΠΊ switch tokenType { Π² pkg/identityserver/entity_access.go

Π—Π΄Π΅ΡΡŒ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‰ΡŒ: это Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΈ API вСрсии 3 Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ источника. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС аутСнтификация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² cookie Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ контСкст Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ источники.
НС ΡƒΠ²Π΅Ρ€Π΅Π½, насколько это ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ каТСтся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ происхоТдСниС Π² Π½Π°ΡˆΠΈΡ… развСртываниях.

Π”Π°, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ происхоТдСния.

@kschiffer, поТалуйста, сообщитС Π½Π°ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прогрСсс здСсь.

Π― написал Ρ€Π΅Π·ΡŽΠΌΠ΅ здСсь: https://github.com/TheThingsNetwork/lorawan-stack/pull/2850#issuecomment -657497193

Π₯ΠΎΡ€ΠΎΡˆΠΎ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ этот Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ здСсь.

@kschiffer НСмного ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Π² Π½Π°Π΄ этим:

  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния oauth Π±ΡƒΠ΄Π΅Ρ‚ Π² основном ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· экрана Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π΄Π°

  • Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ is.oauth.ui.* Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этого.
    [...]
  • Π― Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½ Π² Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ограничСниях Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ стСка, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ CC.
  • МнС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь ТизнСспособноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΈ ΠΌΠ½Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ΅Π½ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄

ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² вСрсии 3, Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ старой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² качСствС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΈ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ TODO с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ bump/major Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ввСсти Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи. Для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· указания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ этой Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚.Π΅. ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· is.oauth.ui.* .

@kschiffer, ΠΊΠ°ΠΊΠΎΠΉ здСсь статус?

Π’ настоящСС врСмя ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΡƒΡŽ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΡΡˆΠ°Ρ„ΠΎΡ‚Π°ΠΌΠΈ, которая продолТаСтся здСсь: #3453.

Π”Π°Π»Π΅Π΅ слСдуСт ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, исправлСниС ΠΈ PR-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… прСдставлСний, Π° Ρ‚Π°ΠΊΠΆΠ΅ адаптация Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠ² ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ Π±Ρ€Π΅Π½Π΄ΠΈΠ½Π³Ρƒ.

@kschiffer, ΠΊΠ°ΠΊΠΎΠΉ здСсь статус?

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Account Π±Ρ‹Π»ΠΎ прСдставлСно Π² вСрсии 3.11. Π’ настоящСС врСмя всС Π΅Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚:

  • Π‘ΠΌΠ΅Π½Π° Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° #488
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСансом
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ (iirc Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ API)

Π’ ΠŸΠžΠ Π―Π”ΠšΠ•. https://github.com/TheThingsNetwork/lorawan-stack/issues/488, каТСтся, ΡƒΠΆΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… вопроса для Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ?

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ