2016-04-11 37 views
0

Tüm bunlar için aylarca okuduğum ve okuduğum için ve bazı nedenlerle, sadece tıklama değil. Api.domain.com adresinde .NET'te yazılan bir RESTful web API'm var ve site.com.com bir AngularJS SPA uygulaması.Google OAuth 2.0 Akış Sorunu (Implicit)

İstemcide (localStorage) hiçbir access_token yoksa, kullanıcıyı OAuth 2 üzerinden kimlik doğrulaması yapmak üzere Google'a yönlendiririm ve access_token yerel depoya yazdığım bir geri arama sayfasına yönlendirilirler.

Şu an için uğraştığım şey, API'ye bir çağrı yaptığımda ve bu Taşıyıcı jetonunu gönderdiğimde, API'm onu ​​tanımak ve kimlik doğrulaması yapmak için API'mı nasıl alabilirim?

Sanırım burada daireler çiziyorum ve sadece sağlam bir yöne ihtiyacım var.

Kimlik Endpoint: https://accounts.google.com/o/oauth2/v2/auth
Kapsamları: Openid profili e-posta (şimdilik)
Yönlendirme: http://localhost/callback.html
Web API: http://api.domain.com
Akışı: Örtülü Akış
SPA: http://localhost
Jetonu Doğrulama URI: https://www.googleapis.com/oauth2/v3/tokeninfo

Kullanıcı http://localhost'a giriyor, access_token i için açısal uygulama denetimleri n yerel depolama. Biri tespit edilirse, geçerli olduğundan ve süresi geçmediğinden emin olmak için jeton doğrulama URI'sine çağrı yapar. Köşeli olarak, http interceptor aracılığıyla, URI'nin Web API'sına giden herhangi bir isteği, access_token'i yetkilendirme başlığında bir taşıyıcı jetonu olarak ayarlar.

Ne bu noktada gerçekleşmesi bekliyoruz Ben Yetkilendir işaretlediğiniz herhangi API yöntemleri, şimdi User.Identity nesnesi artık sulu ile geçmesine izin ve 200

+0

Sanırım bir şey hakkında kafanız karışık. Ne yaptığın konusunda biraz daha detay verebilir misin? hangi api aramaya çalışıyorsun? – DaImTo

+0

Çok kafam karıştı. Her an düşündüğümde, açıkça anlamadım. Google'dan aldığım access_token'ı alıp erişim sahibi olup olmadığını öğrenmek için API'daki bir kullanıcıya yetki vermek için kullanabiliyorum. Bunu api.domain.com adresinde yazdığım api ile yapmak istiyorum. – DGSouth

+0

Birinin yazdığınız bir api'ye erişip erişemeyeceğini görmek için bir Google erişim belirteci kullanmak ister misiniz? Bunu neden yapmak istediğini bilmek ister miyim? Google erişim jetonları Googles API'larına erişmek için hangi kapsamı gönderiyorsunuz? – DaImTo

cevap

0

burada bulunan bu harika sunum dönecektir olmasıdır .

https://speakerdeck.com/developerinfra/authentication-using-tokens-for-angularjs-owin-asp-dot-net-web-api-and-identity

Ve burada bulunan bu müthiş bir yazı.

http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/

burada bulunan onun en mükemmel örnek uygulaması ile Eşleştirilmiş.

https://github.com/tjoudeh/AngularJSAuthentication

benim 17 yıllık kariyerinde en uzun araştırma çabalarının birinden sonra ben hep birlikte koymak bir adam bulundu.