Skip to content

Instantly share code, notes, and snippets.

@niwatako
Created June 21, 2018 10:57
Show Gist options
  • Save niwatako/2cafa54f3558966a63bbd6baef8932fb to your computer and use it in GitHub Desktop.
Save niwatako/2cafa54f3558966a63bbd6baef8932fb to your computer and use it in GitHub Desktop.
WWDCのセッションから、パスワードのAutofillの紹介 #CodePiece #potatotips
potatotips #52 (iOS/Android開発Tips共有会) - connpass
https://potatotips.connpass.com/event/88164/
## kishikawakatsumi 岸川克己 WWDCのセッションから、パスワードのAutofillの紹介
Automatic Strong Passwords and Security Code AutoFill
自動でパスワードを生成してくれる機能がありました。
Security Code AutoFillは2段階認証のコードがSMSで届いたときにサジェストされる。画面を離れる必要がない。
Safariではできたのですが、これがiOS12からアプリでもできるようになる。
重要なのはAssociated Domains を正しく設定しておく必要がある。
`webcredentials` を設定するが、Universalinksなどを設定(applinks)していれば改めて `webcredentials` も設定する必要はない。
### Autofill iOS11〜?
TextFieldにUisernameやPassWordであることを指定しておくとキーボードからKeychainに保存されたパスワードを探すことができるようになる。
OSがパスワードを見つけると提案される。複数ヒットすれば複数の選択肢が現れる。
### Automatic Strong Passwords iOS12〜
TextFieldに New Password 入力欄であることを指定しておくと、Usernameのサジェスチョンと、対応するパスワードを生成して入力・保存してくれる。
UsernameのタイプはKeybordTypeによって決まる。defaultだとEmailが出てきたりするようになる。
このKeyboardTypeはこれから重要な役割を果たすことになる。
ローカライズが可能で、ローカライズに指定した言語で勝手に選ばれる。
Doneボタンがローカライズされないときはローカライズ設定を見直してください。
iOSの生成するパスワードのルールが自分のシステムに合わない場合は
Password Rules Validation Tool でパスワードのパターンを定義する。
それをTextFieldに指定しておくと、そのルールに沿ったパスワードが設定される。
いまのところルールを設定する口は、SessionではXcodeからやっていたが、現状コードから指定する必要がある。
うまく動かなかったら画面にTextField足すとなんか動き出したのでまだ不具合がありそう。
生成されたパスワードを保存させるには、トリガーが不明。保存してくれる部分はまだ作られていなさそう。
Keychainに取り込まれるようになるとは思う。
### Security Code AutoFillの入力
Security Code AutoFill は、関係ないSMSにも反応します。
タイミング悪くよそのメールでコードっぽいものが届くとそれが補完されてしまう。
SMSによる2段階認証は、SMS基盤自体が脆弱という指摘もあるのでGoogleAuthenticatorとかを使う場合もあると思います。そのような場合には意味がないと思います。
Failure Cases
カギカッコで囲まれたCodeは補完対象にならなかった。
そういうパターンを見つけたらバグレポート送って欲しいらしい
- 対応コストは低いので対応しておくと離脱を防げる
- OSバージョンの違いでは受けられるサポートのレベルの違いなのでとりあえず対応して損なし
- ルールによって正しいパスワードが生成されるかのテストはできない
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment