Подтвердить что ты не робот

Safari Autofill: подсказки пароля для запуска в форме регистрации разработки

У меня очень стандартное приложение Rails 4 с помощью Devise 3

Я хочу иметь регистрационную форму для запуска предложений пароля в текущей версии Safari: (Mavericks):

use safari suggested password

iCloud Keychain включен, и я получаю предложения на других страницах, только моя форма не работает с этим по какой-то причине.

Я не могу понять, что именно нужно, чтобы предлагать предложения.

Вот форма, которая создает:

<form accept-charset="UTF-8" action="/users" class="new_user" id="new_user" method="post">
  <div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" />
    <input name="authenticity_token" type="hidden" value="SKtqmi1L/BKcTE/Hvlvw1H3ZRH8nd2UNiNnVILuLS/E=" />
  </div>

  <div>
    <label for="user_email">Email</label><br />
    <input autofocus="autofocus" id="user_email" name="user[email]" type="email" value="" />
  </div>

  <div>
    <label for="user_password">Password</label><br />
    <input id="user_password" name="user[password]" type="password" />
  </div>

  <div>
    <label for="user_password_confirmation">Password confirmation</label><br />
    <input id="user_password_confirmation" name="user[password_confirmation]" type="password" />
  </div>

  <div><input name="commit" type="submit" value="Sign up" /></div>
</form>
  • Как мне изменить форму для запуска предложений для пароля

  • Есть ли какая-либо полезная документация в любом месте этой функции?

4b9b3361

Ответ 1

Apple принимает новые свойства autocomplete: current-password и new-password

У меня была такая же проблема с моим сайтом посвященная тестовым примерам генерации паролей, чтобы улучшить генераторы паролей.

Как указано в [PDF] руководстве, сделанным Apple, свойство autocomplete теперь принимает заданные значения, чтобы помочь с этой проблемой.
См. Здесь спецификацию вместе с другими допустимыми значениями: https://html.spec.whatwg.org/multipage/forms.html#attr-fe-autocomplete-new-password

    <form method="post" action="/tests/4/register-submit" >
  <label>
    <div>Name</div>
    <input
      name="name"
      placeholder="name"
      autocomplete="name"
      type="text"
      pattern=".{4,}"
      title="Needs to be 4 characters long."
      required
    />
  </label>
  <label>
    <div>Username</div>
    <input
      name="username"
      placeholder="Username"
      type="text"
      autocomplete="username"
      pattern=".{4,}"
      title="Needs to be 4 characters long."
      required
    />
  </label>
  <label>
    <div>Password</div>
    <input
      name="password"
      placeholder="Password"
      type="password"
      autocomplete="new-password"
      required
    />
  </label>
  <input type="submit" value="Register" />
</form>

Этот код работает из-за используемого свойства autocomplete="new-password". autocomplete="current-password" также возможно для форм входа.

Это было проверено как работа с помощью: @simevidas

Ответ 2

Я проверил ваш код и успешно предложил пароль. Таким образом, у вас есть проблема, отличная от вашего HTML.

Убедитесь, что верно следующее:

  • Ваш сервер правильно выводит вашу веб-страницу в виде содержимого HTML с кодом ответа 200. (Вы можете увидеть это с помощью любых инструментов разработчика браузера.)

  • Вы используете последнюю версию Safari (7. +)

  • Автозаполнение имен пользователей и паролей проверяется в Safari > Настройки > Пароли.

  • Попробуйте удалить все сохраненные пароли для своего домена в Safari.

  • У вас Keychain отмечен Вкл в iCloud (системные настройки > iCloud)