Saya mengalami masalah saat melakukan panggilan API ke backend aplikasi saya, setiap koneksi sekarang diminta
CredStore - performQuery - Error copying matching creds. Error=-25300, query={
atyp = http;
class = inet;
"m_Limit" = "m_LimitAll";
ptcl = http;
"r_Attributes" = 1;
srvr = "myappsurl.com";
sync = syna;
}
Saya sedikit bingung karena saya tidak yakin apa yang menyebabkan ini, atau bahkan apa yang dilakukan CredStore. Apa tujuan CredStore melayani di iOS?
Jawaban:
Kesalahan ini terjadi saat mencoba mengambil
URLCredential
dariURLCredentialStorage
untuk yang tidak diketahuiURLProtectionSpace
. misalnyamenghasilkan
Berikan kredensial untuk ruang perlindungan:
dan kesalahan hilang saat Anda mencoba mengambil kembali kredensial.
Penyimpanan kredensial di iOS memungkinkan pengguna untuk menyimpan kredensial berbasis sertifikat atau kata sandi dengan aman di perangkat baik untuk sementara atau secara permanen ke rantai kunci.
Saya menduga Anda memiliki semacam autentikasi di server backend Anda dan server tersebut meminta tantangan autentikasi ke aplikasi Anda (yang tidak memiliki kredensial).
Ini mungkin dapat diabaikan dengan aman karena mengembalikan nil dari
URLCredentialStorage
adalah respons yang validsumber
Saya tidak yakin mengapa kami mendapatkan kesalahan ini saat melakukan permintaan dengan Alamofire, tetapi jika Anda melakukan permintaan API dengan beberapa token di header HTTP, Anda mungkin tidak memerlukan penyimpanan kredensial sama sekali. Jadi kami dapat menonaktifkannya untuk permintaan kami:
Tidak ada kesalahan setelah perubahan tersebut.
sumber
Ini adalah kesalahan pengangkutan, mari tambahkan izin pengangkutan seperti ini di file plist:
Berhati-hatilah karena itu memungkinkan koneksi ke server mana pun dari aplikasi Anda. Baca lebih lanjut tentang Keamanan Transportasi Aplikasi sebelum melanjutkan. Lihat komentar oleh @kezi
sumber
Masalah yang sama terjadi pada saya dan saya menemukan bahwa jika URL API Anda tidak mengandung "/" di akhir URL, maka iOS tidak mengirimkan nilai "Otorisasi" ke server. Karena itu Anda akan melihat pesan seperti diposting yang dimaksud di konsol.
Jadi Cukup tambahkan "/" di akhir URL
sumber
Saya mengedit String yang berisi URL untuk memperbaiki masalah ini:
sumber
Jika Anda mendapatkan kesalahan ini, saat menggunakan AVPlayer, panggil saja .play () di utas utama
sumber
Penyebab saya mendapatkan kesalahan ini adalah karena saya tidak sengaja menggunakan dua spasi antara "Pembawa" dan token akses di header Otorisasi saya.
Salah:
Benar:
Kesalahan sederhana, tetapi butuh beberapa saat untuk menemukannya.
sumber
Dalam kasus saya, saya tidak menginisialisasi Stripe SDK dengan kunci API.
Jika ada operasi Stripe, kami dapat mencetak log kesalahan, mudah dimengerti.
sumber
Oke, saya mengalami kesalahan ini, dan berjuang dengannya untuk waktu yang lama (bertahun-tahun) saat berinteraksi dengan aplikasi Ruby on Rails saya.
Saya memiliki kredensial default yang diatur seperti yang dijelaskan dalam jawaban yang diterima, tetapi masih mendapatkan kesalahan, dan telah mengandalkan respons didReceiveChallenge untuk memberikan kredensial - untungnya itu berfungsi sebagai solusi.
Tapi! Saya baru saja menemukan solusinya!
Saya sedang mengerjakan firasat bahwa bidang protectedSpace tidak cocok dengan tantangan Otorisasi dari server Ruby on Rails - dan saya melihat ke bidang ranah, yang tampaknya menjadi satu-satunya yang tidak ditentukan.
Saya mulai dengan mencetak header respons server, dan meskipun saya dapat memeriksanya, mereka tidak menyertakan bidang Otorisasi WWW yang akan menyertakan bidang ranah.
Saya pikir ini mungkin karena aplikasi Rails saya tidak menentukan ranah, jadi saya mulai melihat ke sisi Rails.
Saya menemukan saya dapat menentukan bidang dalam panggilan ke,
... yang saya gunakan untuk otentikasi HTTP Basic.
Saya belum menentukan ranah, jadi tambahkan satu,
Saya kemudian menambahkan string yang sesuai ke protectionSpace,
Voila! Itu berhasil, dan saya tidak lagi mendapatkan,
Bahkan setelah menentukan ranah di aplikasi Rails, saya masih tidak melihatnya diteruskan di header HTTP, saya tidak tahu mengapa, tapi setidaknya berhasil.
sumber
Kesalahan juga dapat disebabkan oleh Kebijakan Keamanan Konten (CSP) yang mungkin terlalu membatasi. Dalam kasus kami, kami membutuhkan CSP yang kurang lebih sepenuhnya terbuka dan memungkinkan segalanya. Ingatlah bahwa membuka CSP bisa menjadi masalah keamanan yang hebat (tergantung pada apa yang sebenarnya Anda lakukan di aplikasi).
sumber
Saya mendapat masalah ini ketika mencoba membuka http-page di dalam web-view. Tapi halaman ini berisi popup yang dibuka lebih dulu.
Ketika tim backend menghapus munculan ini, semuanya menjadi baik-baik saja.
sumber
sumber