2012-04-04 20 views
5

tüketmek için güvenli bir şekilde Önceden tek bir sayfa javascript çözüm olmasını istediğim bir iş uygulaması geliştirmeye başlamak üzereyim. Arka uç bir REST API'si olarak sağlanır. Güvenli bir şekilde nasıl REST API'sına Javascript ön ucundan erişebilirim?Güvenli bir şekilde REST Oauth 2.0 API javascript

Zaten REST API'mda Oauth 2.0 geliştirmeye başladım ve zaten javascript istemcileri için önerilen akış olan "Implicit Grant Flow" hakkında bilgi sahibiyim. Sorun şu ki bu akış sadece kısa ömürlü erişim belirteçleri (belki 1 saat?) Vermelidir.

Sistemimin kullanıcıları sabahları genellikle giriş yaparlar ve işten ayrılmadan önce tüm gün (8 saat) ve çıkışlarda çalışırlar, ancak erişim belirteci bir saatliğine yaşıyorsa her saat yeniden giriş yapmak zorunda kalırlar. Bu mümkün değildir. Bunu nasıl çözersin?

+1

Düşünebildiğim bir çözüm, 1 saat içinde sona eren bir erişim belirteci döndürmek yerine, bir sürgülü son kullanma ile bir access_token döndürebiliyorum. Müşterinin API'ye yaptığı her çağrı için, son kullanma süresi 20 dakika ile yenilenir. Ama bu güvenli kabul edilir mi? Oauth sunucularını süreyi doldurarak kullanmadı mı? – rgullhaug

cevap

5

Biz (Ping Kimliği), OAuth AS uygulamasındaki erişim belirteçleri süresinin sona ermesini destekliyoruz - bunu yapamayacağınızı belirten OAuth 2.0 spesifikasyonları yoktur. Diğer hibe türlerinde daha uzun ömürlü olmak için bir yenileme belirtecine sahip olursunuz - ancak örtük, bunlarla çalışmaz.

JavaScript OAuth araç setine ihtiyacınız varsa, ancak muhtemelen amacınıza uygun olan here's one olduğundan emin değilsiniz.

+1

Sorumu cevaplamak için zaman ayırdığınız için teşekkür ederim. Kayan süreyi uygulayacağım, javascript araç seti için çok teşekkür ederim, kontrol edeceğim :) Bir soru daha: Gizli akışta bir müşteri sırrı sağlamayacağız (müşteri üzerinde gizli tutulmayacağı için), Ancak, farklı istemcinin API'nın farklı bölümlerine erişimi olabileceğinden, hangi müşterinin hizmetimize bağlandığından emin olmalıyız. Redirect_uri'nin kayıtlı redirect_uri ile aynı olduğunu kontrol etmek doğru müşteriyle konuştuğumuzu garanti etmek için yeterli olur mu? – rgullhaug

+1

Evet - gitmek için redirect_uri karşılaştırma yoludur. Söylediğin gibi, müşteri tarafını koruyan bir sır sadece çok uzun zamandır. –