iOSアプリでのユーザーの認証

iOSアプリでのユーザーの認証

ユーザー認証とは 

どこでもサポートSDK(ソフトウェア開発キット)では、どこでもサポートのウィジェットにアクセスするユーザーに関する認証設定を行うことができます。設定後、アプリの利用者はZoho DeskのユーザーIDを使用してサインインする必要があります。サインインすると、アプリの利用者は認証され、どこでもサポートのウィジェットで各種サポート機能を利用できるようになります。Zoho Deskでは、認証方式としてJWT(JSON Web Token)が使用されます。

アプリの利用者は、JWT認証の有無によって、匿名ユーザーと認証ユーザーに分類されます。

匿名ユーザー(JWT認証なし)

利用者はゲストユーザー(匿名ユーザー)と見なされます。ゲストユーザーによって実行できる操作は、ナレッジベースへのアクセス、問い合わせ送信、コミュニティでの投稿の表示、サポート担当者とのチャットに限定されます。自分が送信した問い合わせを表示したり、コミュニティで投稿したりすることはできません。

認証ユーザー(JWT認証あり)

利用者は認証ユーザーと見なされます。認証ユーザーは、ゲストユーザーが行える操作に加えて、送信した問い合わせのステータスの表示、問い合わせへの返信、コメントの追加などの操作を行うことができます。また、コミュニティでは、トピック(投稿)の追加やフォロー、既存の投稿へのコメントの追加など、さまざまな操作を行うことが可能です。

JWT認証とは

JWT(JSON Web Token)とは、データ通信を安全に行うための仕組みです。JWTでは、JSON形式で記述された認証データを一定の形式に変換してから、署名や暗号化を行います。署名を行うことによってデータが改ざんされていないかどうかを確かめ、暗号化を行うことによってデータ保護することができます。 主に認証手続きに関する通信において、WebアプリやAPIで広く使用されています。クライアントとサーバー間のデータ通信を安全に行うのに役立ちます。

JWT認証に関する詳細については、こちらをご参照ください。

ユーザー認証を行うには、以下のコードを使用します。ユーザー認証に関連するメソッドの呼び出しには、以下のimport文を使用します。

Swift

  1. import ZohoDeskPortalAPIKit

Objective-C

  1. @import ZohoDeskPortalAPIKit;

JWTのトークンの指定

アプリでトークンを指定します。JWT認証に関する詳細については、こちらをご参照ください。

Swift

  1. if !ZohoDeskPortalSDK.isUserLoggedIn
    {
        ZohoDeskPortalSDK.login(withJWTToken: String)
        { (isSuccess: Bool) in
            // isSuccess shows whether the login attempt was successful
            // any errors will be logged
        }
    }else
    {
            // user logged in already
    }

Objective-C

  1. if (!ZohoDeskPortalSDK.isUserLoggedIn)
    {
        [ZohoDeskPortalSDK loginWithJWTToken:
        <#(NSString * _Nonnull)#> onCompletion:^(BOOL isSuccess)
        {
             // isSuccess shows whether the login attempt was successful
             // any errors will be logged
        }];
    }else
    {
             // user logged in already
    } ;
ZohoDeskPortalSDK.isUserLoggedIn」は、ユーザーが現在サインインしているかどうかを識別するためのコード(真偽値)です。

利用者のログアウト

どこでもサポートから利用者をログアウトさせるには、以下のメソッドを使用します。

Swift

  1. ohoDeskPortalSDK.logout { (isSuccess: Bool ) in
        // isSuccess shows whether the logout attempt was successful
        // any errors will be logged
    }

Objective-C

  1. [ZohoDeskPortalSDK logoutOnCompletion:^(BOOL isSuccess) {
         // isSuccess shows whether the logout attempt was successful
         // any errors will be logged
    }];
このメソッドを使用すると、認証ユーザーは匿名ユーザーとして見なされます。

ローカルデータのクリア

認証ユーザーがどこでもサポートのウィジェットからログアウトすると、デバイスに保存されているすべてのデータ(ローカルデータ)が自動でクリアされます。

匿名ユーザーのローカルデータもクリアする場合は、以下のメソッドを使用します。

Swift

  1. ZohoDeskPortalSDK.clearAllLocalData()

Objective-C

  1. [ZohoDeskPortalSDK clearAllLocalData];