Bagaimana saya bisa memverifikasi token akses otentikasi Google?
Saya perlu entah bagaimana menanyakan Google dan bertanya: Apakah [diberi token akses] valid untuk akun Google [example@example.com]?
Versi singkat :
Jelas bagaimana token akses yang disediakan melalui Api Otentikasi Google :: Otentikasi OAuth untuk Aplikasi Web dapat digunakan untuk kemudian meminta data dari berbagai layanan Google. Tidak jelas bagaimana memeriksa apakah token akses yang diberikan valid untuk akun Google yang diberikan. Saya ingin tahu caranya.
Versi panjang :
Saya sedang mengembangkan API yang menggunakan otentikasi berbasis token. Token akan dikembalikan setelah penyediaan nama pengguna + kata sandi yang valid atau setelah pemberian token pihak ketiga dari salah satu layanan N yang dapat diverifikasi.
Salah satu layanan pihak ketiga adalah Google, yang memungkinkan pengguna untuk mengautentikasi terhadap layanan saya menggunakan akun Google mereka. Ini nantinya akan diperluas untuk mencakup akun Yahoo, penyedia OpenID tepercaya dan sebagainya.
Contoh skematis akses berbasis Google:
alt teks http://webignition.net/images/figures/auth_figure002.png
Entitas 'API' berada di bawah kendali penuh saya. Entitas 'antarmuka publik' adalah aplikasi berbasis web atau desktop. Beberapa antarmuka publik berada di bawah kendali saya, yang lain tidak akan dan yang lain mungkin saya bahkan tidak pernah tahu.
Karenanya saya tidak bisa mempercayai token yang disediakan untuk API pada langkah 3. Ini akan diberikan bersama dengan alamat email akun Google yang sesuai.
Saya perlu menanyakan Google dan bertanya: Apakah token akses ini valid untuk example@example.com ?
Dalam hal ini, example@example.com adalah pengidentifikasi unik akun Google - alamat email yang digunakan seseorang untuk masuk ke akun Google mereka. Ini tidak dapat dianggap sebagai alamat Gmail - seseorang dapat memiliki akun Google tanpa memiliki akun Gmail.
Dokumentasi Google dengan jelas menyatakan bagaimana, dengan token akses, data dapat diambil dari sejumlah layanan Google. Tampaknya tidak ada yang menyatakan bagaimana Anda dapat memeriksa apakah token akses yang diberikan valid pada awalnya.
Perbarui token ini valid untuk N layanan Google. Saya tidak dapat mencoba token terhadap layanan Google sebagai cara memverifikasi karena saya tidak akan tahu subset dari semua layanan Google yang benar-benar digunakan oleh pengguna tertentu.
Selain itu, saya tidak akan pernah menggunakan token akses autentikasi Google untuk mengakses layanan Google apa pun, hanya sebagai sarana memverifikasi yang seharusnya pengguna Google adalah siapa yang mereka katakan. Jika ada cara lain untuk melakukan ini, saya senang untuk mencoba.