• 31-05-2021, 16:10:38
    #1
    Merhaba arkadaşlar, api ile haberleşirken bir sorun yaşıyorum.

    api.x.com/login url'ine post ile dataları gönderip login oluyorum

    api.x.com/accountinfo ile login olunan kullanıcının bilgilerini almaya çalışıyorum. Postman üzerinden bu işlemi yaptığım zaman herhangi bir sorun olmadan account infoyu bana veriyor fakat flutter ile haberleştiğimde login olabiliyorum bunda herhangi bir sorun yok fakat accouninfo ya ulaşmaya çalıştığım zaman 410 döndürüyor.

    Bunun için ne yapmam gerekli bilgisi olan var mı?

    https://documenter.getpostman.com/vi...d-3f6607d4fe81 kullandığım api dökümantasyonu


    Düzenleme:

    Cookieleri kabul etmek gerekiyor, cookieleri kabul etmeyince sistemde login olmuş olarak görünmüyor.

    Çözüm;

    void _updateCookie(http.Response response) {
        String allSetCookie = response.headers['set-cookie'];
    
        if (allSetCookie != null) {
    
          var setCookies = allSetCookie.split(',');
    
          for (var setCookie in setCookies) {
            var cookies = setCookie.split(';');
    
            for (var cookie in cookies) {
              _setCookie(cookie);
            }
          }
    
          headers['cookie'] = _generateCookieHeader();
        }
      }
    
      void _setCookie(String rawCookie) {
        if (rawCookie.length > 0) {
          var keyValue = rawCookie.split('=');
          if (keyValue.length == 2) {
            var key = keyValue[0].trim();
            var value = keyValue[1];
    
            // ignore keys that aren't cookies
            if (key == 'path' || key == 'expires')
              return;
    
            this.cookies[key] = value;
          }
        }
      }
    
      String _generateCookieHeader() {
        String cookie = "";
    
        for (var key in cookies.keys) {
          if (cookie.length > 0)
            cookie += ";";
          cookie += key + "=" + cookies[key];
        }
    
        return cookie;
      }

    fonksiyonlarını class'a ekleyip response aldıktan sonra _updateCookie(response) şeklinde güncelleme yapmak.

    Kolay gelsin.
  • 31-05-2021, 16:14:18
    #2
    Bearer Token gibi bir header geri dönüyordur.
  • 31-05-2021, 16:22:22
    #3
    tam olarak dediğiniz olayı bilmiyorum hocam,

    https://i.hizliresim.com/kf48gq1.png login

    https://i.hizliresim.com/shsjdt9.png -account info

    olayı tam anlayamadım, accountinfo datasın vermesi için login olması gerekiyor fakat login işlemini neye göre hafızada tutuyor
  • 31-05-2021, 16:54:35
    #4
    api response ettiğinde cookie oluşturuyor, yani apide token ile değil cookie ile işlem yapman gerekiyor.

    cookie kullanımında accountinfo response:
    "code": 200, "success": true, "psdata": { "id": 8, "id_shop": "1", "id_shop_group": "1", "secure_key": ")", "note": "", "id_gender": "1", "id_default_group": "3", "id_lang": "1", "lastname": "sanane", "firstname": "ali",....

    apide cookie kullananda ne bileyim
  • 31-05-2021, 17:03:23
    #5
    aliumac adlı üyeden alıntı: mesajı görüntüle
    api response ettiğinde cookie oluşturuyor, yani apide token ile değil cookie ile işlem yapman gerekiyor.

    cookie kullanımında accountinfo response:
    "code": 200, "success": true, "psdata": { "id": 8, "id_shop": "1", "id_shop_group": "1", "secure_key": ")", "note": "", "id_gender": "1", "id_default_group": "3", "id_lang": "1", "lastname": "sanane", "firstname": "ali",....

    apide cookie kullananda ne bileyim
    Bana da çok güvenli gelmedi bu. Farklı bi fonksiyon yazıp ben kendi yöntemimde çekeyim en iyisi, userId gönderip alsam daha mantıklı olur gibi hissettim şuan.
  • 31-05-2021, 17:08:14
    #6
    api kullanımlarında eğer kişise özel veri çekmen gerekiyorsa access_token kullanmalısın. Userid veya mail vb şeyler hiç güvenli değil
  • 31-05-2021, 17:15:48
    #7
    tamamdır hocam dikkate alacağım. şimdilik userId ile çekiyorum ilerleyen süreçte secure_key ile çekerim veya access_token oluştururum

    Teşekkürler