Lock.swift:構成オプション
Lockの動作を構成するためのオプションは多数あり、以下にリストされています。さらに、[Style Customization Options(スタイルカスタマイズオプション)]ページでは、Lockの外観とスタイルを変更するためのオプションも多数あります。
ロック動作の構成
withOptions
を使用して、ロックの初期化に構成オプションを追加できます。
Lock
.classic()
.withOptions {
$0.closable = true
$0.usernameStyle = [.Username]
$0.allow = [.Login, .ResetPassword]
}
.present(from: self)
Was this helpful?
動作オプション
closable
ユーザーがロックを解除できるようにします。デフォルトではfalse
です。
.withOptions {
$0.closable = true
}
Was this helpful?
scope
認証に使用されるスコープです。デフォルトではopenid
です。アクセストークンだけでなく、ユーザー情報を含むJSON Webトークン(JWT)であるIDトークンも返します。認可スコープの詳細については、スコープに関するドキュメントを参照してください。
.withOptions {
$0.scope = "openid name email picture"
}
Was this helpful?
リフレッシュトークン
ロックオプションでoffline_access
スコープを指定すると、access_token および id_token とともにリフレッシュトークン が返されます。リフレッシュトークンを保存しておき、古いトークンの有効期限が切れたときに新しいアクセストークンを取得するために使用できます。Auth0認証にリフレッシュトークンを使用する方法の詳細については、リフレッシュ トークンを実装するために使用するAuth0.Swift SDKの参照ドキュメント、またはリフレッシュトークンの管理を含むSwift開発でのAuth0の包括的な使用例を提供するSwiftクイックスタートガイドを参照してください。
termsOfService
デフォルトでは、Lock は Auth0 の利用規約およびプライバシーポリシーを使用しますが、他のURLを入力して他の条件やポリシーにリンクすることもできます。
.withOptions {
$0.termsOfService = "https://mycompany.com/terms"
$0.privacyPolicy = "https://mycompany.com/privacy"
}
Was this helpful?
サービス利用規約を表示
データベース接続ではサービス利用規約ダイアログが表示されます。デフォルトはtrueです。mustAcceptTerms
フラグが有効になっている場合は、利用規約が常に表示されることに注意してください。
.withOptions {
$0.showTerms = true
}
Was this helpful?
ユーザーにサービス利用規約への同意を要求
データベース接続では利用規約への明示的な同意が必要です。
.withOptions {
$0.mustAcceptTerms = true
}
Was this helpful?
Web認証オプション
leeway
IDトークンの検証に使用されるクロックスキューです。IDトークンが有効とみなされる時間枠を拡張し、サーバー時間とクライアント時間の差を考慮します。デフォルトでは 60000ミリ秒(60秒)です。
.withOptions {
$0.leeway = 30000 // 30 seconds
}
Was this helpful?
maxAge
ユーザーが最後に認証されてから経過した許容時間(ミリ秒単位)。IDトークンの検証に使用されます。設定されている場合、IDトークンには認証タイムスタンプを含むauth_time
クレームが含まれます。デフォルトはnil
です。
.withOptions {
$0.maxAge = 86400000 // 1 day
}
Was this helpful?
データベースオプション
許可する
アクセス可能なデータベース画面で、デフォルトでは.Login, .Signup, .ResetPassword
などのすべての画面が有効になります。
.withOptions {
$0.allow = [.Login, .ResetPassword]
}
Was this helpful?
initialScreen
ユーザーに表示する最初の画面です。デフォルトは.Login
で、他のオプションには.Signup
とResetPassword
があります。
.withOptions {
$0.initialScreen = .Login
}
Was this helpful?
usernameStyle
ログインに必要な識別子のタイプを指定します。デフォルトは次のいずれかです。[.Username, .Email]
。ただし、[.Username]
または[.Email]
も受け入れることができます。ただし、このオプションは、Auth0 Dashboardでrequires_username
フラグをtrue
に設定した場合にのみアクティブになることに注意してください。
.withOptions {
$0.usernameStyle = [.Username]
}
Was this helpful?
カスタムサインアップフィールド
サインアップ時のデフォルトの情報要件は、ユーザーのメールアドレスとパスワードです。必要に応じて、データキャプチャ要件を拡張できます。ここで追加のサインアップフィールドをキャプチャすると、user_metadata
に保存されます。詳細については、メタデータを参照してください。カスタムテキストフィールドで使用するアイコンを指定する必要があることに注意してください。
.withOptions {
$0.customSignupFields = [
CustomTextField(name: "first\_name", placeholder: "First Name", icon: LazyImage(name: "ic_person", bundle: Lock.bundle)),
CustomTextField(name: "last\_name", placeholder: "Last Name", icon: LazyImage(name: "ic_person", bundle: Lock.bundle))
]
}
Was this helpful?
次の例のように、他のバンドルのアイコンを指定することもできます。 CustomTextField(name:"slack_handle", placeholder:"Slack Handle", icon:LazyImage(name:"ic_slack", bundle:Bundle(identifier:"CustomBundle")))
エンタープライズオプション
エンタープライズ接続に固有の構成オプションもあります。
enterpriseConnectionUsingActiveAuth
デフォルトでは、エンタープライズ接続はWeb認証を使用します。ただし、資格情報認証を代わりに使用し、ユーザー名とパスワードの入力を求める接続を指定できます。
.withOptions {
$0.enterpriseConnectionUsingActiveAuth = ["enterprisedomain.com"]
}
Was this helpful?
activeDirectoryEmailAsUsername
資格情報認証モードの場合、ユーザーは識別子としてメールアドレスを要求しますか?デフォルトはfalse
で、代わりにユーザー名が必要です。
.withOptions {
$0.activeDirectoryEmailAsUsername = true
}
Was this helpful?
ログオプション
Lockには、ログ機能のオン/オフを簡単に切り替えたり、その他のログ関連の設定を調整したりするためのオプションが用意されています。
logLevel
デフォルトでは.off
Syslogログレベルがサポートされています。
.withOptions {
$0.logLevel = .all
}
Was this helpful?
logHttpRequest
Auth0.swift API クエストをログに記録するかどうか。デフォルトではfalse
です。
.withOptions {
$0.logHttpRequest = true
}
Was this helpful?
loggerOutput
ロガー出力ハンドラーを指定します。デフォルトでは、print
ステートメントが使用されます。
.withOptions {
$0.loggerOutput = CleanroomLockLogger()
}
Was this helpful?
上記のコードでは、loggerOutputはCleanroomLoggerを使用するように設定されています。これは通常、loggerOutputプロトコルを実装することで実現できます。もちろん、お気に入りのロガーライブラリを使用することもできます。以下は、CleanroomLoggerでロガー出力を処理する使用例です。
class CleanroomLockLogger: LoggerOutput {
func message(_ message: String, level: LoggerLevel, filename: String, line: Int) {
let channel: LogChannel?
switch level {
case .debug:
channel = Log.debug
case .error:
channel = Log.error
case .info:
channel = Log.info
case .verbose:
channel = Log.verbose
case .warn:
channel = Log.warning
default:
channel = nil
}
channel?.message(message, filePath: filename, fileLine: line)
}
}
Was this helpful?