Docs Menu

ユーザーの管理 - Swift SDK

Atlas App Services を使用してクライアント アプリをサポートすると、ユーザー オブジェクトにアクセスできます。 このユーザー オブジェクトで Swift SDK メソッドを使用すると、便利に次のことを行うことができます。

  • ユーザーの作成と削除

  • ユーザーのログインとログアウト

  • カスタムユーザーデータの作成と更新

  • ソーシャル ログイン プロバイダーからユーザー メタデータを読み取る

メール/パスワード認証を除くすべての認証プロバイダーの場合、App Services はユーザーが初めて認証するときにユーザー オブジェクトを自動的に作成します。 ユーザーが複数の方法で認証する場合は、これらのユーザー ID を 1 つのユーザー オブジェクトにリンクできます。

ユーザー オブジェクト を削除できます。 ユーザー オブジェクトを削除すると、ユーザー オブジェクトに添付されているメタデータが削除されますが、ユーザーが入力したデータはバックエンドから削除されません。

Tip

Appleアカウントの削除要件

Apple は、 App Store を通じてアプリケーションをリストする必要があります アカウントを作成したすべてのユーザーに、アカウントを削除するオプションを提供する必要があります。メールやパスワード認証など、ユーザーを手動で登録する必要がある認証方法を使用する場合でも、Apple でサインインなどのユーザーを自動的に作成する認証方法を使用する場合でも、 30年 6 月 日までにユーザー アカウントの削除を実装する必要があります。 2022 。

1 つ以上の認証プロバイダを使用して、ユーザーをクライアントアプリにログインまたはログアウトさせます。 ここでは、次の作業が可能です。

  • Apple、Facebook、Google などの既存のソーシャル アカウントでユーザーをログインさせます。

  • App Services のメール/パスワード管理、または独自のカスタム関数またはカスタムJSON web tokenユーザー管理を使用して、新しいユーザー アカウントを作成します。

  • 匿名ユーザーを有効にすると、ユーザー データを保持せずに App Services App にアクセスできます。

ログインしているユーザーがある場合、SDK メソッドによって次のことが可能になります。

ログインが成功すると、Swift SDK はデバイスの認証情報をキャッシュします。 ログイン フローをバイパスし、キャッシュされたユーザーにアクセスできます。 これを使用して、Realm を開くか、次回のアプリが開くときに関数を呼び出します。

App Services はアクセス トークンとリフレッシュ トークンを使用してセッションを管理します。 クライアント SDK は、トークンを管理し、そのトークンにリクエストを提供するためのロジックを提供します。

Realm は リフレッシュ トークン を使用して、ユーザーのアクセス トークンの有効期限が切れると自動的に更新されます。 ただし、Realm はリフレッシュ トークンを自動的に更新しません。 リフレッシュ トークンの有効期限が切れると、SDK は更新されたアクセス トークンを取得できなくなり、ユーザーが再度ログインするまでデバイスは同期できなくなります。

ユーザー セッションとトークンの管理の詳細については、App Services ドキュメントの「ユーザー セッション 」を参照してください。

Swift SDK はこれらのトークンを キーチェーン に保存します 。

カスタム データを、希望言語やローカル タイムゾーンなどのユーザー オブジェクトに関連付け、クライアント アプリケーションから読み取ることができます。 ユーザー オブジェクトには、カスタム ユーザー データにアクセスするために使用できるcustomDataプロパティがあります。

カスタム ユーザー データを作成およびアップデートするには、MongoDB データソースに直接アクセスする必要があります。 App Services では、このカスタム ユーザー データを作成または更新するための SDK メソッドは提供されていません。これは読み取り専用のプロパティです。

一部の認証プロバイダでは、開発者が氏名やメールアドレスなどのユーザー メタデータにアクセスできるようにしています。 App Services アプリケーションでこれらのメタデータ フィールドを構成すると、クライアント アプリからこのメタデータを読み取ることができます。 ユーザー オブジェクトには、ユーザー メタデータにアクセスするために使用できるprofileプロパティがあります。