Google yenileme jetonlarının süresi doluyor mu?


109

Yenileme jetonunu test amacıyla kısa bir süre içinde birkaç kez kullandım, ancak Google yenileme jetonlarının süresinin dolup dolmadığını merak ediyorum. Uzun bir süre boyunca (bir hafta veya hatta aylarca) başka bir erişim belirteci almak için aynı yenileme jetonunu kullanabilir miyim?


Ruby mi kullanıyorsunuz yoksa bunun için kod örneğiniz var mı?
Thufir

Yanıtlar:


148

Google Auth sunucusu, Yenileme jetonlarının süresi asla dolmaz - yenileme jetonlarının tüm noktası budur. Kullanıcı uygulamanıza erişimi iptal ettiğinde yenileme belirtecinin süresi dolacak (veya yetkisiz hale geleceğini söylemeliyim).

Bu belgeye bakın , yenileme belirteçlerinin işlevini açıkça belirtir.

Sunucu, uzun süreli bir belirteç (genellikle bir yıl veya sınırsız kullanım ömrü için iyidir) vermek yerine, kısa ömürlü bir erişim belirteci ve uzun ömürlü bir yenileme belirteci verebilir. Kısacası, erişime yetki veren kullanıcı uygulamanıza erişimi iptal edene kadar yenileme belirteçlerini tekrar tekrar kullanabilirsiniz.


6
"Bir yıl için iyi" bölümü, önerdiğiniz kadar net olmuyor; ancak pratikte sorunlara neden olmadığı için, yenileme simgesinin her zaman yeşil olduğunu varsayıyorum.
mahemoff

54
Belirteç süresinin sona ermesi Verilen bir belirtecin artık çalışmama olasılığını tahmin etmek için kodunuzu yazmalısınız. Bir belirteç, aşağıdaki nedenlerden biri nedeniyle çalışmayı durdurabilir: Kullanıcı erişimi iptal etmiştir. Jeton altı aydır kullanılmadı. Kullanıcı hesabı, belirli sayıda belirteç isteğini aştı. Şu anda Google kullanıcı hesabı başına 25 jeton sınırı vardır. Bir kullanıcı hesabının 25 geçerli jetonu varsa, sonraki kimlik doğrulama isteği başarılı olur, ancak en eski bekleyen jetonu kullanıcı tarafından görülebilen herhangi bir uyarı olmadan sessizce geçersiz kılar. ( developer.google.com/accounts/docs/OAuth2
adresinden

17
'uzun ömürlü' yenileme simgesi, 'asla sona ermeden' farklı bir şeydir.
Kapé

1
Öyleyse, kodunuz yenileme simgenizin hala geçerli olup olmadığını nasıl kontrol edebilir?
SsjCosty

3
@Shadow Önerildiği gibi yenileme belirtecinin süresi nadiren dolarsa, Google neden ilk etapta süresi dolmayan bir erişim belirteci düzenlemiyor? Anladığım kadarıyla, oAuth 2.0 kullanılarak verilen erişim belirteci daha sonra bir yenileme belirteci istemek için kullanılabilir. Neden sadece kalıcı bir erişim belirtecine sahip olmuyorsunuz ve yenileme belirteci için fazladan çağrıyı kesmiyorsunuz.
Charles Robertson

62

Bu çok kafa karıştırıcı bir konu. İlk cevap doğru gibi görünüyor, ancak aslında google'dan yetkili herhangi bir şeyden alıntı yapmıyor.

Bulduğum en kesin cevap aslında geliştiricinin jetonu aldığınız oyun alanında. Adım 2'nin alt kısmında şunu yazan bir not var:

"Not: OAuth Playground, yenileme jetonlarını saklamaz, ancak yenileme jetonlarının süresi hiçbir zaman dolmadığından, kullanıcılar bunları manuel olarak iptal etmek istiyorsa Google Hesabı Yetkili Erişim sayfasına gitmelidir."

https://developers.google.com/oauthplayground/


2
en iyi cevap burada - neden kimse olumlu oy vermedi - çok teşekkürler - yenileme jetonlarını süresi dolmamış gibi ele alın - ancak oturum açarken, kullanıcının yenileme jetonunu iptal etmesi durumunda yenisini kontrol edin, bu senaryoda Google yeni bir yenileme jetonu sağlayacaktır oturum
açtığınızda

14

Bunun tamamen doğru olduğunu sanmıyorum:

Verilecek yenileme jetonlarının sayısında sınırlar olduğunu unutmayın; İstemci / kullanıcı kombinasyonu başına bir sınır ve tüm istemcilerde kullanıcı başına başka bir sınır. Yenileme jetonlarını uzun süreli depolamaya kaydetmeli ve geçerliliğini sürdürdükleri sürece kullanmaya devam etmelisiniz. Uygulamanız çok fazla yenileme jetonu isterse, bu sınırlara ulaşabilir ve bu durumda eski yenileme jetonları çalışmayı durdurur.

bu sayfadan: https://developers.google.com/youtube/v3/guides/authentication#installed-apps

Bu, youTube belgelerinden (diğer api belgelerinden çok daha iyi bulduğum), ancak tüm Google uygulamalarında aynı olduğunu düşünüyorum.



5

Bu konuda kurallar 2017'de bir ara değişti, bu yüzden bence en iyi cevap ürüne bağlı olması. Örneğin, Gmail API'da Oauth 2.0 yenileme simgesinin süresi, şifre değişikliği ile sona erer. Bu https://support.google.com/a/answer/6328616?hl=en bakın

Önceden API erişimini kuruyorduk ve YENİ gmail kullanıcılarını kurduğumuzda yenileme belirteçleri oluşturuyorduk ve ardından postalarını arşivleyebiliyorduk (bunu yasalar gereği yapmak zorundayız), ancak şimdi şifrelerini değiştirir değiştirmez yenileme belirteci iptal edildi.

Belki youtube, haritalar için yenileme jetonu gerçekten uzun ömürlüdür, ancak gmail api için kısa bir jetona güvenebilirsiniz.


Görünüşe göre 5 Ekim 2016'da
resmiyet kazanmıştır

2

Yenileme jetonunun ana konsepti, uzun ömürlü olması ve asla sona ermemesidir.

Erişim belirtecinin bir sona erme süresi vardır ve süresi dolduğunda, kullanıcı hesabından iptal edene kadar tekrar tekrar kullanılacak olan yenileme belirtecine gidebiliriz.


0

Bunu şu adresten okuyun: https://developers.google.com/identity/protocols/oauth2#expiration Verilen bir yenileme simgesinin artık çalışmayabileceğini tahmin etmek için kodunuzu yazmalısınız. Yenileme jetonu, aşağıdaki nedenlerden biri nedeniyle çalışmayı durdurabilir:

Kullanıcı, uygulamanızın erişimini iptal etti. Yenileme belirteci altı aydır kullanılmadı. Kullanıcı şifreleri değiştirdi ve yenileme belirteci Gmail kapsamlarını içeriyor. Kullanıcı hesabı, verilen (canlı) yenileme jetonlarının maksimum sayısını aştı. Şu anda her müşteri için kullanıcı hesabı başına 50 yenileme jetonu sınırı vardır. Sınıra ulaşılırsa, yeni bir yenileme jetonu oluşturmak, en eski yenileme jetonunu uyarı vermeden otomatik olarak geçersiz kılar. Bu sınır hizmet hesapları için geçerli değildir.

Ayrıca, bir kullanıcı hesabının veya hizmet hesabının tüm istemcilerde sahip olabileceği toplam yenileme belirteci sayısı için daha büyük bir sınır vardır. Çoğu normal kullanıcı bu sınırı aşmaz, ancak bir geliştiricinin test hesabı olabilir.


-2

Biraz daha araştırma yaptım ve görünüşe göre Google erişim jetonu, ilk "çevrimdışı" istek sırasında bir yenileme belirtecini almak için kullanılıyor. Bu noktadan itibaren, yenileme belirteci yeni bir erişim belirteci vermek için kullanılır. Buradaki fikir, erişim jetonunun kısa vadeli bir jeton olmasıdır, ancak uzun vadeli bir yenileme jetonu ile yenilenebilir. Bu, iki uç nokta yaklaşımı gerektiren ve yönlendirici tabanlı bir istek kullanılarak başlatılması gereken URL 'kod' değişkenini talep etme ihtiyacını ortadan kaldırır:

http://www.jensbits.com/2012/01/09/google-api-offline-access-using-oauth-2-0-refresh-token/

Dropbox gibi bazıları REST API hizmetleri sonsuza kadar süren erişim belirteçleri yayınlar, ancak Google kısa vadeli erişim belirteçleri verir. PayPal, erişim belirteçlerinin URI yönlendirme zorunluluğu olmadan alınmasına izin veren bir uzlaşma kullanır. Bu, işlemi başlatmak için bir bağlantıya tıklamak zorunda kalmadan erişim belirteçlerinin alınabileceği anlamına gelir. Google'ın metodolojisi, API rutinlerinin yalnızca ihtiyaç temelinde çağrılması gerektiği anlamına gelir. Esasen, çağrılar yönlendiren tabanlı prosedürler aracılığıyla başlatılır. Bu, kısa ömürlü erişim belirteçleri veya bir zincirde yenilenmesi gereken erişim belirteçleri yayınlayarak kontrol edilir. Bu, geliştiricilerin bir sistemin nasıl akması gerektiği konusunda daha dikkatli düşünmelerini gerektirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.