Me encuentro con un problema al realizar llamadas a la API al backend de mis aplicaciones, cada conexión ahora solicita
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;
}
Estoy un poco perdido porque no estoy seguro de qué está causando esto, o qué hace CredStore. ¿Para qué sirve CredStore en iOS?
Respuestas:
Este error ocurre cuando se intenta recuperar un
URLCredential
deURLCredentialStorage
para un desconocidoURLProtectionSpace
. p.ejproduce
Darle una credencial para el espacio de protección:
y el error desaparece la próxima vez que intente recuperar la credencial.
El almacenamiento de credenciales en iOS permite a los usuarios almacenar de forma segura credenciales basadas en certificados o contraseñas en el dispositivo de forma temporal o permanente en el llavero.
Sospecho que tiene algún tipo de autenticación en su servidor backend y que el servidor solicita un desafío de autenticación a su aplicación (para el cual no existe ninguna credencial).
Probablemente se pueda ignorar con seguridad ya que devolver nil de la
URLCredentialStorage
es una respuesta válidafuente
No estoy seguro de por qué recibimos este error cuando realizamos solicitudes con Alamofire, pero si realiza solicitudes de API con algún token en los encabezados HTTP, es posible que no necesite almacenar las credenciales en absoluto. Entonces podemos deshabilitarlo para nuestra solicitud:
No hay errores después de dicho cambio.
fuente
Este es un error de transporte, agreguemos un permiso de transporte como este en el archivo plist:
Tenga cuidado ya que eso permite la conexión a cualquier servidor desde su aplicación. Lea más sobre App Transport Security antes de continuar. Ver comentario de @kezi
fuente
Este mismo problema me sucede a mí y descubrí que si la URL de su API no contiene un "/" al final de la URL, iOS no envía el valor de "Autorización" al servidor. Debido a lo cual verá un mensaje como publicado en cuestión en la consola.
Simplemente agregue "/" al final de la URL
fuente
Edité la cadena que contiene la URL para solucionar este problema:
fuente
Si obtiene este error, cuando use AVPlayer, simplemente llame a .play () en el hilo principal
fuente
La causa por la que recibí este error se debió a que accidentalmente usé dos espacios entre el "Portador" y el token de acceso en mi encabezado de Autorización.
Incorrecto:
Correcto:
Simple error, pero me tomó un tiempo encontrarlo.
fuente
En mi caso, no estaba inicializando Stripe SDK con la clave API.
En caso de cualquier operación de Stripe, podemos imprimir el registro de errores, es fácil de entender.
fuente
OK, tuve este error y luché con él durante mucho tiempo (años) al interactuar con mi aplicación Ruby on Rails.
Tenía las credenciales predeterminadas configuradas como se describe en la respuesta aceptada, pero aún recibí el error y he estado confiando en una respuesta didReceiveChallenge para proporcionar las credenciales, afortunadamente eso funcionó como una solución alternativa.
¡Pero! ¡Acabo de encontrar la solución!
Estaba trabajando con la corazonada de que los campos protectedSpace no coincidían con el desafío de Autorización del servidor de Ruby on Rails, y miré el campo de reino, que parecía ser el único que se dejaba sin definir.
Empecé imprimiendo los encabezados de respuesta del servidor y, aunque pude examinarlos, no incluían el campo WWW-Authorization que habría incluido el campo de reino.
Pensé que esto se debía a que mi aplicación Rails no especificaba el reino, así que comencé a mirar el lado de Rails.
Descubrí que podía especificar el reino en la llamada a
... que estoy usando para la autenticación básica HTTP.
Ya no estaba especificando un reino, así que agregué uno,
Luego agregué la cadena correspondiente al espacio de protección,
¡Voila! Eso funcionó, y ya no entiendo el,
Incluso después de especificar el reino en la aplicación Rails, todavía no lo veo pasado en el encabezado HTTP, no sé por qué, pero al menos funciona.
fuente
El error también puede deberse a una Política de seguridad de contenido (CSP) que puede ser demasiado restrictiva. En nuestro caso, necesitábamos un CSP que sea más o menos completamente abierto y lo permita todo. Tenga en cuenta que abrir el CSP puede ser un gran problema de seguridad (dependiendo de lo que esté haciendo exactamente en la aplicación).
fuente
Tuve este problema cuando intenté abrir una página http dentro de una vista web. Pero esta página contenía una ventana emergente que se abrió primero.
Cuando el equipo de backend eliminó esta ventana emergente, todo estuvo bien.
fuente
fuente