C#

2013-06-14 8 views
8

numaralı Google Kimlik Numaralarını Doğrulama ASP.NET web api'mdeki bir mobil cihazdan geçirilen bir Google Kimlik jetonunu doğrulamam gerekiyor.C#

Google, here örnek koduna sahiptir, ancak yalnızca .Net 4.5 olan bir JWT NuGet paketine bağlıdır (C# /. Net 4.0 kullanıyorum). Bu paketler olmadan bunu yapan herhangi bir numunenin farkında mı, yoksa bunu kendinde mi başardı? Paketin kullanımı, onsuz ne yapmam gerektiğini çalışmak için çok zor hale getirir.

+0

herhangi bir ürün buldu? Aynı zamanda C# kullanarak çevrimdışı yapmak istiyorum çünkü bazen Google'ın sunucusu çok yavaş yanıt veriyor. – shashwat

cevap

1

Zorlama, kimlik belirtecinde JWT sertifikasını doğrulamaktır. Şu anda bir kütüphane yok. Bunu yapabilmenin farkında değil. Net 4.5 ve .NET 4.0'da JWT doğrulama için bir çözüm bulunana kadar, kolay bir çözüm olmayacak. Ancak, bir erişim belirteciniz varsa, oauth2.tokeninfo kullanarak doğrulamayı gerçekleştirme işlemine bakabilirsiniz. belirteç bilgileri kullanarak temel doğrulama gerçekleştirmek için aşağıdaki gibi bir şey yapabilirsiniz:

// Use Tokeninfo to validate the user and the client. 
var tokeninfo_request = new Oauth2Service().Tokeninfo(); 
tokeninfo_request.Access_token = _authState.AccessToken; 
var tokeninfo = tokeninfo_request.Fetch(); 
if (userid == tokeninfo.User_id 
    && tokeninfo.Issued_to == CLIENT_ID) 
{ 
    // Basic validation succeeded 
} 
else 
{ 
    // The credentials did not match. 
} 

tarihinde OAuth2 API döndü bilgiler, buna da çok verildiği istemci kimliği olarak size belirli bir belirteci hakkında daha fazla bilgi söyler son kullanma tarihi olarak.

Not Erişim belirtecinin etrafından geçmemelisiniz, ancak bunun yerine erişim belirtecini almak için bir kerelik bir kod değiştirdikten sonra bu denetimi yapmalısınız.

+1

Aslında erişim belirtecini, yalnızca kimlik belirtecini iletmiyorum. Sadece kullanıcının kimliğini doğrulamalıyım, herhangi bir Google apis'i aramamalıyım. Çevresindeki erişim jetonlarını geçmenin kötü bir uygulama olduğunu düşünmüştüm, bunu sadece id jetonuyla yapmanın bir yolu var mı? Teşekkürler – SeeNoWeevil

+0

.NET 4.5 kullanmadan bunu yapmak için bir yol aramaya devam edeceğim, 4.0 ve üzeri çalışan bir çözüm olması ideal olacaktır. Ayrıca, erişim belirtecini doğrulamak için, ne yapmak istediğiniz, tek seferlik kodu kullanmak ve erişim belirtecilerini, etrafındaki erişim belirteçlerini geçirmenin tersine değiştirmek. – class