folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Token Based Authentication Çıkış Yapma Olayı



Token Based Authentication Çıkış Yapma Olayı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek

    Sistemde token based authentication kullanıyorum, kafama birkaç birşey takıldı.

    Veritabanında bir key tutuyorum ve kullanıcı logout olduğunda key' i kaldırıyorum.

    Böylece data erişim yetkisi kalmıyor, fakat adam mobilden daha önce giriş yapmışsa;

    bilgisayardan çıkış yaptığında ben key' i sildiğim için otomatikman mobilden de çıkış yapmış oluyor.

    Hatta tüm cihazlardan..

    Nasıl önüne geçebilirim ?


    Hello, i am nothing. I come from Neverland.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Yazilimci
    Yazilimci's avatar
    Kayıt Tarihi: 01/Şubat/2014
    Erkek

    Veritabanında tuttuğun keyin yanına bir sütun daha ekleyip cihazla alakalı bir id tutabilirsin hocam. Tabi kontrolleride buna göre değiştirmen gerekiyor

     

    Yazilimci tarafından 31/May/16 12:21 tarihinde düzenlenmiştir

    Titanyumun gücü adına!!!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kofcu
    kofcu's avatar
    Kayıt Tarihi: 29/Ağustos/2014
    Erkek

    aynen 3lü token tutmalısın

    0 token id 1 giriş yapılan uye  2 giriş yapılan browser 3 token

    hangi browserdan çıkış yaptıysa onun tokenini silmen lazım,

    hatta tüm cihazlardan oturumu kapat butonu koyarsın tüm tokenleri siler vesaire.

     

    kofcu tarafından 31/May/16 15:47 tarihinde düzenlenmiştir

    ben de sevgiden yanayım...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Aynen öyle :D Token içine bilgi göm abi bende bununla alakalı bi sistem yaptım. Benimki de öyle. Mesela çıkış yaptığında tokeni siliyorum . 3 adet Tokenim var (GirişTokeni.WebToken.AndroidToken). Mesela android den çıkış yaptığında giriş tokeni ve android tokeni siliyorum. ondan snra Web'de istekte bulununca arka planda tekrar bi düzenleme ile giriş tokenini dolduruyorum Web den istekte bulunuyor. Webden de çıkınca 3 tokeni de sıfırlıyorum Android den girince Giriş ve Android tokeni dolduruyorum Web Tokeni boş kalıyor. gibi bi sistem yaptım . Ama her çıkışta Giriş tokenini sıfırlıyorum. 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek

    Facebook gibi bir sürü yerden aynı anda ulaşılabilir hesap olsun istiyorsan oturumlar(sessions) tablosu yapmalısın.

    id, code, ip, agent, user_id

    Kontrol için: SELECT user_id FROM sessions WHERE code = ? and ip = ? and agent = ?;

    Sadece o oturumu kapatmak için: DELETE FROM sessions WHERE code = ?;

    Tüm oturumları kapatmak için: DELETE FROM sessions WHERE user_id = ?;

     

    Edit: Sanırım sen paso sisteminin durumu değiştiriyorsun. Projelerine bitiş tanımla. Zaman olabilir, süre olabilir. Bu da böyle olacak amk denilebilir. Bir kerede en iyisi çıkmaz.

    PcK0 tarafından 31/May/16 18:26 tarihinde düzenlenmiştir

    Sadece bi imza..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kofcu
    kofcu's avatar
    Kayıt Tarihi: 29/Ağustos/2014
    Erkek
    PcK0 bunu yazdı

    Facebook gibi bir sürü yerden aynı anda ulaşılabilir hesap olsun istiyorsan oturumlar(sessions) tablosu yapmalısın.

    id, code, ip, agent, user_id

    Kontrol için: SELECT user_id FROM sessions WHERE code = ? and ip = ? and agent = ?;

    Sadece o oturumu kapatmak için: DELETE FROM sessions WHERE code = ?;

    Tüm oturumları kapatmak için: DELETE FROM sessions WHERE user_id = ?;

    hocam senin yöntem de mantıklı geldi ama mesela telefonumla oturum açtım evdeki kablosuz ağa bağlıyken, sonra gittim cafedeki kablosuz ağa bağlandım, o zaman evde açtığım oturuma cafeden girmem için tekrar giriş yapmam gerekmez mi?


    ben de sevgiden yanayım...
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ozgunlu
    ozgunlu's avatar
    Banlanmış Üye
    Kayıt Tarihi: 11/Kasım/2011
    Erkek
    PcK0 bunu yazdı

    Facebook gibi bir sürü yerden aynı anda ulaşılabilir hesap olsun istiyorsan oturumlar(sessions) tablosu yapmalısın.

    id, code, ip, agent, user_id

    Kontrol için: SELECT user_id FROM sessions WHERE code = ? and ip = ? and agent = ?;

    Sadece o oturumu kapatmak için: DELETE FROM sessions WHERE code = ?;

    Tüm oturumları kapatmak için: DELETE FROM sessions WHERE user_id = ?;

     

    Edit: Sanırım sen paso sisteminin durumu değiştiriyorsun. Projelerine bitiş tanımla. Zaman olabilir, süre olabilir. Bu da böyle olacak amk denilebilir. Bir kerede en iyisi çıkmaz.

    Yok hocam, şu anda işler durumda zaten hali hazırda bitirmiş olduğum proje bu. 

    Sadece Rest API ve Token based authentication' a çevirmek istedim. Ben handler ve session kullanmıştım.

    Boş zamanlarım da çeviriyordum arka taraftan. İşyerindekiler bilmiyor :D O yüzden ağır işliyorum :D

    Çok takıntılıyım bu konuda, en iyisi olana kadar 10 kere yazıyorum ama artık bi tane çıkarıyorum sonra arkada bunu yazıyorum.

    Aslında akıllanmadım da deadline' ı kısa tutunca bizimkiler, işleri görülsün diye yazmıştım. Şimdi geliştirme gelince hem onu hem de bunu geliştiriyorum.

    Parelel çalışıyorum yani.

    Zaten bu bitmek üzere artık, bunu aktif edip, ötekini rafa kaldırıcam.

     

    ozgunlu tarafından 31/May/16 18:34 tarihinde düzenlenmiştir

    Hello, i am nothing. I come from Neverland.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    detCode
    detCode's avatar
    Kayıt Tarihi: 30/Kasım/2012
    Erkek

    örnek her login farklı session id olacak şekilde session id karşılığında session verilerini hafızada veya nosql de tut. farklı yerden iki aynı kullanıcı girsede session idler farklı olucağından karışmıcak.

    kablosuz ağ örneği için ise sorgu geldiğinde session idsine karşılık gelen verideki ilk login hangi ip den yapılmış şuandaki gelen sorgu hangi ip vs. vs. kontroller yapabilirsin

     

    detCode tarafından 31/May/16 18:53 tarihinde düzenlenmiştir

    Who is detCode?
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    PcK0
    PcK0's avatar
    Kayıt Tarihi: 13/Nisan/2007
    Erkek
    kofcu bunu yazdı
    PcK0 bunu yazdı

    Facebook gibi bir sürü yerden aynı anda ulaşılabilir hesap olsun istiyorsan oturumlar(sessions) tablosu yapmalısın.

    id, code, ip, agent, user_id

    Kontrol için: SELECT user_id FROM sessions WHERE code = ? and ip = ? and agent = ?;

    Sadece o oturumu kapatmak için: DELETE FROM sessions WHERE code = ?;

    Tüm oturumları kapatmak için: DELETE FROM sessions WHERE user_id = ?;

    hocam senin yöntem de mantıklı geldi ama mesela telefonumla oturum açtım evdeki kablosuz ağa bağlıyken, sonra gittim cafedeki kablosuz ağa bağlandım, o zaman evde açtığım oturuma cafeden girmem için tekrar giriş yapmam gerekmez mi?

    Evet doğru. WHERE code = ? and agent = ? yapmamız kullanıcıyı dolaşımda sıkıntıya düşürmeden sistemi kullandırır. Zaten örnekti bu. Ip güvenlikleri üzerinde güzel denetim sağlayacağız dersek kıçı kırık tek ip kolonu zaten bize yetmeyecektir. En son ip değişikliği ne zaman yapıldı? En son değişen ipnin bölgesi? Bu noktalar çok mu uzak? İp değiştirdi kullanıcı ama hala eski ipden istek geliyor o zaman bu bir hack olabilir mi? gibi bir sürü daha durum incelemesi gerekiyor. Yani tek ip kolonu ile sistemin göte gelmesi normal :)


    Sadece bi imza..
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    token tablosunu user in sütununa yazma token tablon ayrı olsun.    

     tokenId userId token createdDate updateDate   şeklinde.

    login olunduğu an  token tablosuna eklersin yukarıdakileri. her login olunduğunda yeni token oluşturup eklersin böylece diğer yerlerden çıkış yapınca sadece o tokenı oluşturursun. her o tokenı bu tablodan kontrol ettiğinde updateDate i güncellersin.     birde kontrol servisin olur.      createdDate ile updateDate i kontrol edersin updateDate eski olanları silersin. sonuçta adam illa çıkış yap deyip çıkmayabilir. boşuna yer kaplamasın dbde


    Bittik biz bittik
Toplam Hit: 1036 Toplam Mesaj: 10
çıkış token based logout