Je rencontre un problème en effectuant des appels d'API vers le backend de mes applications, chaque connexion s'affiche maintenant avec
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;
}
Je suis un peu perdu car je ne suis pas sûr de ce qui cause cela, ni de ce que fait même CredStore. À quoi sert CredStore dans iOS?
Réponses:
Cette erreur se produit lorsque vous essayez de récupérer un
URLCredential
depuisURLCredentialStorage
pour un inconnuURLProtectionSpace
. par exempleproduit
Donnez-lui un identifiant pour l'espace de protection:
et l'erreur disparaît la prochaine fois que vous essayez de récupérer les informations d'identification.
Le stockage des informations d'identification sur iOS permet aux utilisateurs de stocker en toute sécurité des informations d'identification basées sur des certificats ou des mots de passe sur l'appareil, temporairement ou définitivement sur le trousseau.
Je soupçonne que vous avez une sorte d'authentification sur votre serveur principal et que ce serveur demande un défi d'authentification à votre application (pour laquelle aucune information d'identification n'existe).
Il peut probablement être ignoré en toute sécurité car renvoyer nil de
URLCredentialStorage
est une réponse validela source
Je ne sais pas pourquoi nous obtenons cette erreur lors de l'exécution de requêtes avec Alamofire, mais si vous effectuez des requêtes API avec un jeton dans les en-têtes HTTP, vous n'avez peut-être pas du tout besoin de stocker les informations d'identification. Nous pouvons donc le désactiver pour notre demande:
Aucune erreur après un tel changement.
la source
C'est une erreur de transport, ajoutons une autorisation de transport comme celle-ci dans le fichier plist:
Soyez prudent car cela permet la connexion à n'importe quel serveur depuis votre application. En savoir plus sur App Transport Security avant de continuer. Voir le commentaire de @kezi
la source
Ce même problème m'arrive et j'ai constaté que si l'URL de votre API ne contient pas de "/" à la fin de l'URL, iOS n'envoie pas de valeur "Autorisation" au serveur. En raison de quoi vous verrez un message comme posté en question dans la console.
Ajoutez simplement "/" à la fin de l'URL
la source
J'ai modifié la chaîne qui contient l'URL pour résoudre ce problème:
la source
Si vous obtenez cette erreur, lorsque vous utilisez AVPlayer, appelez simplement .play () sur le thread principal
la source
La cause de cette erreur était due à l'utilisation accidentelle de deux espaces entre le «porteur» et le jeton d'accès dans mon en-tête d'autorisation.
Incorrect:
Correct:
Erreur simple, mais il a fallu un certain temps pour le trouver.
la source
Dans mon cas, je n'initialisais pas Stripe SDK avec la clé API.
En cas d'opération Stripe, nous pouvons imprimer le journal des erreurs, il est facile à comprendre.
la source
OK, j'ai eu cette erreur et je me suis battu avec elle pendant longtemps (des années) en interagissant avec mon application Ruby on Rails.
J'avais des informations d'identification par défaut configurées comme décrit dans la réponse acceptée, mais j'ai toujours l'erreur et je me suis appuyée sur une réponse didReceiveChallenge pour fournir les informations d'identification - heureusement, cela a fonctionné comme une solution.
Mais! Je viens de trouver la solution!
Je travaillais sur l'intuition que les champs protectedSpace ne correspondaient pas au défi d'autorisation du serveur Ruby on Rails - et j'ai regardé dans le champ de royaume, qui semblait être le seul à ne pas être défini.
J'ai commencé par imprimer les en-têtes de réponse du serveur, et bien que j'aie pu les examiner, ils n'incluaient pas le champ WWW-Authorization qui aurait inclus le champ realm.
Je pensais que c'était peut-être parce que mon application Rails ne spécifiait pas le domaine, alors j'ai commencé à regarder le côté Rails des choses.
J'ai trouvé que je pouvais spécifier le domaine dans l'appel à,
... que j'utilise pour l'authentification HTTP Basic.
Je ne spécifiais pas déjà un royaume, alors j'en ai ajouté un,
J'ai ensuite ajouté la chaîne correspondante au protectionSpace,
Voila! Cela a fonctionné, et je n'ai plus le,
Même après avoir spécifié le domaine dans l'application Rails, je ne le vois toujours pas passé dans l'en-tête HTTP, je ne sais pas pourquoi, mais au moins cela fonctionne.
la source
L'erreur peut également être causée par une politique de sécurité du contenu (CSP) qui peut être trop restrictive. Dans notre cas, nous avions besoin d'un CSP plus ou moins complètement ouvert et permettant tout. Gardez à l'esprit que l'ouverture du CSP peut être un problème de sécurité majeur (en fonction de ce que vous faites exactement dans l'application).
la source
J'ai eu ce problème lorsque j'ai essayé d'ouvrir une page http dans une vue Web. Mais cette page contenait un popup qui a été ouvert en premier.
Lorsque l'équipe backend a supprimé ce popup, tout est devenu OK.
la source
la source