Rumah > Soal Jawab > teks badan
P粉9491909722023-08-23 18:29:31
Ya, adalah mungkin untuk menggunakan OAuth2 tanpa URL panggil balik. RFC6749 memperkenalkan beberapa proses. Aliran tersirat (kini ditamatkan[1]) dan aliran kod kebenaran(Kod Kebenaran) memerlukan URI ubah hala. Walau bagaimanapun, aliran bukti kelayakan kata laluan pemilik sumber (juga ditamatkan[1]) tidak diperlukan.
Sejak penerbitan RFC6749, spesifikasi lain telah diterbitkan yang tidak memerlukan sebarang URI ubah hala:
Selain itu, apabila menggunakan OpenID Connect, corak tindak balas tidak perlu menjadi ubah hala kepada parameter redirect_uri
, tetapi boleh menjadi permintaan POST ke titik akhir itu. Lihat OAuth 2.0 Borang POST Response Corak spesifikasi untuk butiran.
Apa pun, jika jenis kebenaran di atas tidak sesuai dengan keperluan anda, anda boleh membuat jenis kebenaran tersuai.
[1]: Spesifikasi OAuth 2.1 (Draf 07)
P粉7138664252023-08-23 16:15:15
Tidak tepat sepenuhnya, keseluruhan proses OAuth ialah pengguna (pelanggan yang bagi pihak anda sedang mengakses data) perlu memberi anda kebenaran untuk mengakses data mereka.
Lihat Arahan Pengesahan. Anda perlu menghantar pengguna ke halaman kebenaran OAuth:
https://api.surveymonkey.net/oauth/authorize?api_key<your_key>&client_id=<your_client_id>&response_type=code&redirect_uri=<your_redirect_uri>
Ini akan menunjukkan kepada pengguna halaman yang memberitahu mereka bahagian akaun mereka yang anda minta akses (cth. melihat tinjauan mereka, melihat respons mereka, dsb.). Setelah pengguna meluluskan dengan mengklik "Izinkan" pada halaman itu, SurveyMonkey akan melompat secara automatik ke halaman yang anda tetapkan sebagai URI ubah hala (pastikan URI ubah hala dalam URL di atas sepadan dengan yang ditetapkan dalam tetapan aplikasi anda) dan kembali kod Keizinan.
Jadi jika URL ubah hala anda ialah https://example.com/surveymonkey/oauth
, SurveyMonkey akan mengubah hala pengguna ke URL tersebut menggunakan kod kebenaran:
https://example.com/surveymonkey/oauth?code=<auth_code>
Anda kemudiannya perlu menggunakan kod kebenaran itu untuk menukar token akses dengan menghantar permintaan POST ke https://api.surveymonkey.net/oauth/token?api_key=<your_api_key>
, memberikan parameter POST berikut:
client_secret=<your_secret> code=<auth_code_you_just_got> redirect_uri=<same_redirect_uri_as_before> grant_type=authorization_code
Ini akan mengembalikan token akses yang kemudiannya boleh anda gunakan untuk mengakses data pada akaun pengguna. Anda tidak perlu memberikan token akses kepada pengguna, ia adalah untuk anda gunakan untuk mengakses akaun pengguna. Tiada pengundian atau operasi lain diperlukan.
Jika anda hanya mengakses akaun anda sendiri, anda boleh menggunakan token akses yang disediakan dalam halaman tetapan aplikasi. Jika tidak, tiada cara untuk mendapatkan token akses untuk pengguna melainkan anda menyediakan pelayan ubah hala anda sendiri (melainkan semua pengguna tergolong dalam kumpulan yang sama, iaitu berbilang pengguna di bawah akaun yang sama; tetapi saya tidak akan melakukannya). SurveyMonkey memerlukan tempat untuk menghantar kod kebenaran kepada anda, anda tidak boleh meminta satu sahaja.