2013-04-23 23 views
8

COR ve Angular.js ile Node.js kullanarak basit bir giriş yapıyorum. olduğuNode.js CORS oturum çerezi Angular.js ile

--- client.example.com başarısı üzerinde oturum tanımlama çok client.example.com döndürülür ve erişebilir bir POST çok api.example.com/login yapıyor de bir servis oturumu çerez tarafından korunan api.example.com/secret gibi GET.

Bir oturum çerezi tarafından korunmayan GET isteklerinin yapılması sorun değil.

Sonuçta, amaç burada çok authenticate a client side app to a REST api using CORS with a local stradegy --- yani kullanıcı adı & şifre --- bile isnt yukarıdaki kongre mümkünse.

Herhangi bir yerden öğrenmek için işe yarayan bir iş görülemez bulamıyorum - bana doğru yönde işaret mi?

Yardım: Bir çalışma örneğini gösterme.

+0

Bu, yalnızca çerezinizin etki alanını .example.com olarak ayarladıysanız mümkündür. Api.example.com adresinden customer.example.com için bir çerez ayarlayamazsınız: http://stackoverflow.com/questions/1062963/how-do-browser-cookie-domains-work – alexwen

+0

@alexwen Kabul etmek istesem ne olur? --- 'client.example1.com' ve' client.example2.com' gibi herhangi bir alandan. Buradaki amaç, bir istemci yan uygulamasının CORS kullanarak yerel bir stradegy --- i.e. 'username' ve 'parola 'kullanarak da bir REST api olduğunu doğrulamaktır. –

cevap

2

Sorunlarınız çok basittir; tarayıcılar, bir etki alanında bulunan tanımlama bilgilerini farklı bir etki alanına gönderilmesine izin vermez.
Bu, güvenlik içindir. Oturum çerezinize herhangi bir alandan erişilebiliyorsa, herhangi bir site csrf gerçekleştirebilir (tanım gereği, ne istediğinizi csrf yapmaktır - oturumu farklı bir sitedeki bir siteden kullanın).

Etrafında bazı yollar vardır, ancak bunları uygularken dikkatli olmalısınız.

  • kolay yolu giriş ve etki alanları arası istekleri yapmak JSONP kullanmaktır, jsonp temelde Çerezleri alanlar arası politikaları kırar.

  • Sen api.example.com oturur client.example.com sayfa bir iFrame gömebilirsiniz, ebeveyn ve iFrame iletişim kurabilir post message kullanarak. Erişmeye client.example.com izin hangi bilgilerin ekstra dikkatli olmalıdır böylece

Her iki yol, (doğaları gereği) csrf isteklere açıktır.