Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[Çözüldü] - Google Cloud Platformunda OAuth 2.0 ile Dinamik Token Nasıl Alınır?
#1
Merhaba,
Google Cloud Platform API'lerinden Speech To Text'i kullanabilmek için Google Console üzerinden tanımlamaları yaptıktan sonra gerekli olan parametreleri aldım.
REST bileşenleri (TRESTClient, TRESTRequest, TRESTRespons) ile bu parametreleri set ettim. 
OAuth 2.0 güvenlik doğrulaması için  TOAuth2Authenticator bileşenini kullandım. 
Tasarım anında TOAuth2Authenticator ile bir saat geçerli Access-Token ve Refresh-Token'lar oluşturulabiliyor.

   

Bir saat boyunca bu API'yi kullanabiliyorum. Süre bitiminde yeni Token'ları almak gerekiyor. 
Çalışma anında TOAuth2Authenticator bileşenine ait Authorize metodunu nasıl yenileyebilirim?
Cevapla
#2
Authorize işlemini arka planda gerçekleştirmek için REST.Authenticator.OAuth.WebForm.Win kütüphanesinde yer alan Tfrm_OAuthWebForm formundan faydalanayım dedim.
Bu defa da her saatte bir son kullanıcının karşısına doğrulama ekranı çıkıyor.

   

Bu ekranda Google hesabı ile giriş yaptıktan sonra Allow buton seçimi yapılması isteniyor. 
Her iki aşmadan sonra Authentication codu ve Token'lar üretiliyor. 
Kullanıcıyı bu pencere ile muhatap etmeden arka planda kimlik bilgilerini (token ve authcode) yenileme imkanı var mı?
Cevapla
#3
s.a
mrmarman hocanın çözümü burada mevcut
http://www.delphican.com/showthread.php?tid=2076
Cevapla
#4
(29-04-2019, Saat: 17:48)theSinan Adlı Kullanıcıdan Alıntı: s.a
mrmarman hocanın çözümü burada mevcut
http://www.delphican.com/showthread.php?tid=2076

Bilgilendirme için teşekkür ederim. Referans verdiğiniz konuyu inceledim. 
Burada, ikinci mesajımda belirttiğim web üzerinden kullanıcı doğrulama yönteminden bahsediliyor. Bu pencereyi son kullanıcıya yansıtmadan bir güvenlik doğrulaması yapmak istiyorum. 
@mrmarman üstadımız da bu durumdan muzdarip olacak ki; pencereyi bir ilizyon marifetiyle onaylamış.  Smile
Lokal (geliştirici) bilgisayarında kullanıcı adı ve şifresi kaydedilip, yalnızca Allow butonunun arka planda tetiklenmesi sorunu bir nebze çözüyor. Fakat uygulamanın son kullanıcılara dağıtılması durumunda kullanıcı adı ve şifresi sorun olacaktır.

TOAuth2Authenticator ile çalışma anında herhangi bir Google hesap talebi olmadan güvenlik doğrulaması yapılabiliyor, fakat çalışma anında bu doğrulamayı sağlayacak bir metod yok. 
Yalnızca AuthCode'un elde edilmesi durumunda (arka planda bu kodu almak için de çok uğraştım) iki satırlık bir kod ile yine kullanıcı bilgilerine ihtiyaç olmadan doğrudan geliştirici API anahtarları ile güvenlik doğrulamasının yapılabileceğini öğrendim.  
örneğin
with OAuth2Authenticator1 do
begin
 AuthCode := FAuthorisationCode;
 ChangeAuthCodeToAccesToken;
end;
Örnekte AuthCode'un set edilmesi durumunda TOAuth2Authenticator bileşenine ait ChangeAuthCodeToAccesToken global metodu ile arka planda tekrar bir saatlik işlem anahtarları (token'lar) alınabiliyor. 
AuthCode'un arka planda elde edilmesi veya farklı çözüm önerileriniz varsa bekliyorum.
Cevapla
#5
Google Cloud Platform OAuth 2.0 güvenlik seviyesinin arka planda doğrulanması JWT (JSON Web Tokens) yöntemi ile sağlanabiliyormuş.
Bunun için Google Cloud Console'dan proje bilgilerini içeren bir JSON dosyası veya .p12 sertifika dosyası (.pem dosyasına dönüştürme zorunluluğu var) indirmek gerekiyor.

   

Daha sonra bu dosyaların JWT'ye dönüştürülüp, servis sağlayıcıdan yeni token talepleri yapılıyormuş.
Bu konuda tecrübesi olan arkadaşlar varsa, yardımlarını bekliyorum.

KaynakPreparing to make an authorized API call
Cevapla
#6
Delphi için hazırlanmış bir JWT implemantasyonu mevcut;
https://github.com/paolo-rossi/delphi-jose-jwt

Birçok protokolü destekliyor.
Cevapla
#7
(02-05-2019, Saat: 09:39)mad85 Adlı Kullanıcıdan Alıntı: Delphi için hazırlanmış bir JWT implemantasyonu mevcut;
https://github.com/paolo-rossi/delphi-jose-jwt

Birçok protokolü destekliyor.

Teşekkür ederim.
İnceleyeyim, bir sonuca ulaşınca buradan yazarım.
Cevapla
#8
Rica ederim. Dört gözle bekliyorum üstad Smile
Cevapla
#9
(02-05-2019, Saat: 10:13)mad85 Adlı Kullanıcıdan Alıntı: Rica ederim. Dört gözle bekliyorum üstad Smile

Tüm Google Cloud Platform API hizmetleri oAuth 2.0 ile kullanılabildiğine göre; bir çok proje entegrasyonunda bu sınıf kullanılabilir.
Cevapla
#10
(02-05-2019, Saat: 10:40)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(02-05-2019, Saat: 10:13)mad85 Adlı Kullanıcıdan Alıntı: Rica ederim. Dört gözle bekliyorum üstad Smile

Tüm Google Cloud Platform API hizmetleri oAuth 2.0 ile kullanılabildiğine göre; bir çok proje entegrasyonunda bu sınıf kullanılabilir.

Kesinlikle...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Logo Go3 de döviz tablosunda Date_ alanına veri (Çözüldü) yazma cinarbil 4 126 Dün, Saat: 08:25
Son Yorum: cinarbil
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 122 17-04-2024, Saat: 10:58
Son Yorum: Bay_Y
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 239 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.359 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 515 02-02-2024, Saat: 09:54
Son Yorum: shooterman



Konuyu Okuyanlar: 1 Ziyaretçi