Mentransfer autentikasi OAuth dari aplikasi seluler ke tampilan web

Saya telah berupaya menerapkan OAuth di API proyek saya. Sebagai bagian dari proyek ini, kami memiliki aplikasi seluler yang mengautentikasi pengguna melalui API ini, menggunakan pemberian kata sandi (hibah ini sebenarnya mengirimkan kredensial yang diberikan ke server autentikasi upstream yang tidak mengimplementasikan OAuth - sehingga diperlukan) .

Aplikasi seluler ini juga memiliki fungsi untuk membuka tampilan web ke beberapa situs web yang telah ditentukan sebelumnya. Idenya adalah bahwa situs web ini dapat memberikan otorisasi atas nama pengguna menggunakan pemberian kode_otorisasi.

Di sinilah pertanyaan saya muncul. Saat mengotorisasi situs web, kami jelas mengharuskan pengguna diautentikasi dengan API kami. Namun, pengguna mengautentikasi melalui pemberian kata sandi di aplikasi, dan bukan di tampilan web.

Bagaimana kita mentransfer otentikasi dari aplikasi ke API ketika otentikasi dilakukan di aplikasi? Menurut saya, menyetel cookie yang berisi token pada domain API akan menjadi cara terbaik untuk mengimplementasikannya?

Mohon maaf jika pertanyaannya tidak sejelas mungkin. Saya kesulitan menemukan cara terbaik untuk mengungkapkan dan menjelaskan pertanyaan saya.


person garbetjie    schedule 30.10.2019    source sumber


Jawaban (1)


Pertanyaan bagus - Saya telah menerapkan ini di masa lalu melalui pola strategi:

  • Ketika tampilan web dihosting di browser (yang merupakan SPA dalam kasus saya), tangani token dengan cara SPA standar - misalnya pembaruan token pada pengalihan login iframe/layar penuh

  • Saat tampilan web dihosting di aplikasi seluler, deteksi ini melalui agen pengguna dan panggil kembali aplikasi seluler untuk melakukan hal-hal seperti menyegarkan token atau memulai login seluler baru

Ini rumit tetapi masuk akal karena web/seluler memiliki solusi yang sangat berbeda untuk pembaruan token/penyimpanan/login

Ini adalah kasus penggunaan praktis di dunia nyata di mana hampir tidak ada panduan online. Dengan senang hati menjawab pertanyaan lanjutan apa pun.

person Gary Archer    schedule 30.10.2019
comment
Saat menghostingnya di aplikasi seluler, apakah Anda bermaksud mengekspos beberapa jenis fungsi asli ke tampilan web melalui JavaScript? - person garbetjie; 31.10.2019
comment
Ya - JavaScript menentukannya berjalan di tampilan web dan kemudian memanggil kembali aplikasi seluler - yang dapat melakukan hal-hal seperti menggunakan token penyegaran untuk mendapatkan token akses baru dan mengembalikannya ke kode JavaScript - person Gary Archer; 01.11.2019