#はじめに
こんにちは!
アドベントカレンダー初挑戦です!!
なんか共同で一つのものを作り上げている感じがして、
とても楽しくやっています!
さて本題ですが、今回はiPhoneXから新しい生体認証として導入された、
「FaceID」による認証をやってみようと思います。
まだまだSwift初心者ですので、間違っている部分があれば教えていただけると幸いです...!
#開発環境
- macOS High Sierra バージョン10.13.1
- Xcode9.2
- iPhoneX iOS11.2
#さっそくやってみよう
新しいプロジェクトを作成して始めていきたいと思います!
顔認証が成功すればテキストが変わる超無意味なアプリを作ってみますw
まあ生体認証の勉強なんでなんでもいいんですよ!
###必要な準備
FaceIDを使用する場合、ユーザー側に使用許諾を得る必要があります。
###FrameWorkのImport
iOS8から実装された、認証系のFrameWorkであるLocalAuthenticationをImportします。
import LocalAuthentication
###認証部分の実装
認証させるタイミング等、本来は考えないといけませんが、
今回は実験、かつとりあえず手を動かしてみようということで起動してすぐ認証させますw
override func viewDidLoad() {
super.viewDidLoad()
let context = LAContext()
var error: NSError?
let description: String = "顔認証"
// FaceIDが使用の使用可否を確認し、使用可能な場合のみ認証処理を行う
if context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: &error) {
context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, localizedReason: description, reply: {success, evaluateError in
if (success) {
// 認証成功
print("顔見知りです。")
} else {
// 認証失敗
print("初めまして。")
}
})
}
}
LocalAuthenticationのcanEvaluatePolicyで生体認証が可能かどうかを判定しています。
すごくシンプルですが、これだけで認証部分の実装は完了です。
#動かしてみた
起動と同時にこのアプリにFaceIDを使用していいかどうかが聞かれました。
OKを押すとFaceIDの認証が始まります。
今回はSimulatorで動かしたので、メニューからマッチングしなかった場合を確認してみました。
するとFaceIDをもう一度行うかキャンセルするかのダイアログが出てきました。
ここで認証をやめたり再実行したりとできるみたいです。
#最後に
こんな数行のコードで認証機能を実装できるとは思っていませんでした。
まあ簡潔に書きすぎたというのもありますが、生体認証を使用するハードルが高くないことが知れて良かったです!
iPhoneX...、まだまだ試してみたいことがいくつかあるので、次回以降記事にできればと思います!
最後までご覧いただきありがとうございました!
ではでは。