Una pantalla de inicio de sesión para el correo electrónico y la contraseña del usuario está generando un error que no he podido reproducir. He buscado extensamente una solución, y todo lo que veo hace referencia a problemas de urlEncoding atob Prácticamente nada sobre btoa .
<input type="password" id="loginPassword" placeholder="password" class="registerFields" ng-model="loginInfo.password"></input> $scope.userLogin = function() { // check user on back end var pass64 = btoa($scope.loginInfo.password) ; // <-- error generated here .... } ;Estoy codificando la cadena para devolverla a mi servidor, que decodifica la cadena usando PHP y luego compara correctamente la contraseña con lo que está almacenado en la base de datos.
$user_password = base64_decode($inObj['upass']) ; if (password_verify($user_password,$rows[0]['user_password'])) { ... } Todo lo que he estado leyendo es que el error que se informa se debe a que los usuarios ingresan caracteres Unicode en el campo de contraseña. ¿Es este el único caso que podría causar este error o hay otros? Intentando replicar el error, ingresé alrededor de una docena de cadenas Unicode, incluso la tecla enter (U + 2386), pero cada ejemplo con el que estoy probando no produce un error.
- ¿Qué caracteres o cadenas podrían estar causando esto para que pueda intentar replicarlo?
- ¿Qué puedo hacer para evitar el error O, si es posible, evitar que se ingresen caracteres Unicode como contraseña (es una buena idea)?