Benim PHP app içine Google Apps entegre etmeye çalışıyorum. Zaten kullanıcı giriş yaptığında veritabanında depolanır, (kullanıcı adı ve şifre girildikten sonra) bir kullanıcıya bir oturum kimliği atayan giriş sistemi var. Oturum Kimliği adlı kullanıcı tarafından yapılandırılabilir hareketsizlik belirli bir süre sonra (geçersiz hale 5 dakika, 15, 60 ... olabilir. Bu oturum kimliği, bir kullanıcının hala giriş yaptığını kontrol etmek için URL'de iletilir. Oturum kapatırken, oturum kimliği veritabanından kaldırılır.tarihinde Uygulamaları ve OAuth iyi uygulamalar
Kullanıcıların Google kimliklerini giriş yaptıkları sırada veritabanına depolayarak Google ile giriş yapmasına izin veriyorum, erişim belirteci talep ediyorum, userinfo'yu sorgula, google kimliğinin veritabanında olup olmadığına bakın ve eğer öyleyse Bu kullanıcıya oturum kimliği. Diğer API'ları sorgulayabildiğim için, veri tabanındaki erişim belirteci jsonunu da saklıyorum. Bir kullanıcı oturumu kapattığında, erişim belirteci veritabanından da kaldırılır.
: Ancak bazı şeyler benim iş akışı konusunda belirsiz hissettirecek aksak hissediyorum
Bu benim kullanıcıların kendi Google hesabını kullanarak giriş edebiliyoruz, işler ve API en saklı access_token kullanarak sorgulayabilir Eğer bir refresh_token olsun force_approval olursa, ben yeni bir erişim jetonu almak üzere bu yenileme jetonu kullanarak yerine veritabanından eskisini kaldırıp tekrar yenisini kullanıcı günlükleri girecekler gibi hissediyorum. Öte yandan, giriş yaparken, henüz kim olduğunu bilmiyorum, bu yüzden kullanmak için hangi yenileme jetonunu bilmiyorum. Belki de yenileme belirtecinin ne için olduğunu anlamıyorum. Ayrıca, her seferinde onaylamayı zorlamak istemiyorum, bu durumda refresh_token'ı bile kullanamıyorum.
olarak kullanıcılar, oturum ne kadar süreceğini belirlemek için önce söz konusu, ancak, google ACCESS_TOKEN hep 3600 saniye sonra sona erer. kullanıcılar bunları tekrar giriş yapmak zorlayarak, sistemde ve Google API en aniden başarısız bundan sonra bir saat çalışacak eğer gerçekten aptal olurdu. Google OAuth oyun alanı, "Süre dolmadan önce otomatik olarak yenileyin" onay kutusunu gösterir, ancak bunu nasıl yapacağımı bilmiyorum. Yenileme jetonunu kullanmak zorunda mıyım? Ya da sadece arka planda yeni bir jeton ister (onayını zorlamıyorsam)?
Şu anda kullanıcı kimliğini bulmak için userinfo sorgusunu (https://www.googleapis.com/oauth2/v2/userinfo) kullanıyorum, ama aynı zamanda tokeninfo'yu da kullanabilirim (https://www.googleapis.com/oauth2/v1/tokeninfo). Tokeninfo oauth oyun alanında yer almıyorsa, ancak sonuç (ancak, ben de kendim hesaplayabilir) belirteci geçerli kalacağı süreyi göstermektedir. Diğeri üzerinde tercih edilir mi?
Tüm json nesnesini veritabanında saklıyorum (access_token, id_token, expires_in ve token_type) ancak sadece access_token depoladığımda uygulamamın yine de mükemmel şekilde çalışacağını hissediyorum (yalnızca expires_in zamanını tahmin ediyorum) değişiklikler). Örneğin, id_tokenini depolamam gerekiyor mu? Herkes bilgilerin herhangi diğer iyi kaynaklar biliyorsa
Girdiğiniz için çok teşekkürler, sağladığınız makaleleri okuyacağım ve yol boyunca bana yardımcı olacağını umuyorum. – Bram