search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
1.1k gösterim
Angular uygulamasına login sayfası koymak isterken karşılaştığım Token mantığını java backend tarafında halletmek istedim ama çok fazla uğraştırdı.

Bunun daha kolay bir yöntemi var mıdır? Angular üzerinden http.post ile user credentials parametreleri ile java api çağrılır. Java tarafında bilgiler db den kontrol edilir. Eğer uygun ise bir token üretilir ve api ile angular a response olarak döner. Sonrasında Angular üzerinden backend e gittiğimiz her requestte(Get veya post farketmez) bu token'ı kullanmamız gerekiyor. Token browser da cookie olarak tutulabilir.

Ama bu şekilde çok fazla bir iş yükü ortaya çıktı bunun daha kolay bir yolu var mıdır?

Teşekkürler
Javascript kategorisinde 211 puan

2 Cevap

0 oy

Aslında olması gereken herşeyi düzgünce anlatmışsın.

Tek sorum var. Token'i ürettikten sonra istemci tarafına indirdin diyelim. Sonrasında her seferinde sunucu tarafına yolluyorsun ve sunucuda da metodlarda elle mi kontrol ediyorsun?

Bunu yapmak için java tarafında otomatik kontrol eden bir yapı geliştirebilirsin. Java servlet ya da spring için filter diye bir kavram var onu biraz araştır.

İstemci tarafında zaten aldığın token'i sunucuya yollamaktan başka yapacağın birşey olmaması lazım. Decode işlemi felan yapmaya kalkarsan zaten tuttuğun veriyi ifşa etmiş olursun.

php ile bir örnek olsun diye sunucu taraflı birşeyler karalamıştım zamanında. Örneğini aşağıdaki linkde bulabilirsin.

https://github.com/commandito/php-samples/blob/master/jwt-test.php

6.2k puan
0 oy

Öncelikle Java tarafında bu security işlemlerinde kullanılan teknolojileri bilmemiz gerekiyor. Özellikle Spring Security implementasyonu ile birlikte öne çıkan aut yöntemleri :

  1. Basic Aut (HTML)
  2. JWT Aut (JSON tabanlı token kontrollü - Sizin bahsettiğiniz)
  3. OAuth2 (Sosyal Medya destekli)

Basic Aut en basit ve güvenli olan yöntemdir. 

JWT (JSON Web Token) teknolojisi Angular ve React client'ler için kullanılan yaygın olan yöntemdir. Kullanıcı login olduğunda token oluşturulur ve front-end tarafına bildirilir ve her işlemde istekler bu token ile birlikte gönderilmesi gerekir. Bazı durumlarda daha kontrollü yapılar mevcuttur. Reslesh Token diye ayrıca bir Token bildirilir. Kullanılan token'ın süresi olur ve bittiğinde front-end tarafından reflesh token ile birlikte yeni token alması beklenir.

Örnek Uyguma : https://www.callicoder.com/spring-boot-spring-security-jwt-mysql-react-app-part-2/

OAuth2 yöntemi ise sosyal medya hesapları ile login ve register olmayı sağlayan security yöntemidir. Sosyal medya entegrasyonu isteniyorsa bu yöntem kullanılmalıdır.

Saygılarımla,

164 puan

İlgili sorular

0 oy
1 cevap 749 gösterim
749 gösterim
Merhabalar, Angular 4 ile yazılmış bir arayüzü servera nasıl deploy ederiz. Lokalimizde Node.js yükleyerek onun üzerinde localhostta çalıştırıyoruz (ng serve ). Ama bu uygulamayı mesela linux bir server a attığımızda nasıl bir işlem yapmamız lazım. Teşekkürler
4 Ocak 2018 Javascript kategorisinde erkanerkisi 211 puan sordu
0 oy
1 cevap 921 gösterim
921 gösterim
Spring kullanrak Rest service ile getUser (userId ile alıyorum) ve getByUserName diye iki methodum var ve userl leri ise api/user/{id} api/user/{userName} şeklinde, ancak ikisini seçmekte kararsız kalıyor sanırım. Bunu nasıl çözerim. @RequestMapping(value = "/user/{userName}", method = ... id) { ............. alınan hata ise; Error: Ambiguous handler methods mapped for HTTP path in spring...
16 Temmuz 2017 Java kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 1.6K gösterim
1.6K gösterim
Merhaba ben rastgele bir şifre oluşturmak istiyorum. Büyük küçük harf ve sayılar içeren. Bu konuda yardımcı olabilir misiniz ?
16 Mart 2020 Java kategorisinde kupanintorunu 365 puan sordu
1 oy
1 cevap 717 gösterim
717 gösterim
Elimde şöyle bir timestamp objesi var, bu uygulamanın bulunduğu sunucunun ın tarihini mi yoksa local bilgisayarın tarihini mi alır emin olmak istedim? Timestamp D = new Timestamp(System.currentTimeMillis());
8 Kasım 2016 Java kategorisinde tolgacelik.art 2.0k puan sordu
1 oy
1 cevap 1.3K gösterim
1.3K gösterim
Selamlar, Spring de kullanılan metodların üzerindeki @Transactional yapısı ve bunların attributeları (Propagation,Isolation,...) nedir? ne amaçla kullanılır? İkinci sorum olarak da nested transactional işlemlerde commit ve rollback attribute ları da göz önüne alırsak exception alması durumunca nasıl çalışır? Sevgiler Erkan
11 Ağustos 2018 Java kategorisinde erkanerkisi 211 puan sordu