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で、他のオプションには.SignupResetPasswordがあります。

.withOptions {
  $0.initialScreen = .Login
}

Was this helpful?

/

usernameStyle

ログインに必要な識別子のタイプを指定します。デフォルトは次のいずれかです。[.Username, .Email]。ただし、[.Username]または[.Email]も受け入れることができます。ただし、このオプションは、Auth0 Dashboardrequires_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

デフォルトでは.offSyslogログレベルがサポートされています。

.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?

/