認証方式について

In sdk

ベンダシステムのIDトークンの利用について

Riiiverシステムは、(1)ベンダシステムがOpenID Connectに準拠するIDトークン(Json Web Token)を発行する(2)必要な情報をRiiiverシステムに登録しているときに限り、ベンダシステムとの認証連携ができます。登録の必要な情報は以下のとおりです。

  1. 署名検証に必要な公開鍵取得用のURL
  2. Json Web Key (jwk)か、pemを取得できる必要があります。
  3. issuerクレーム (iss)
  4. audienceクレーム (aud)

認証APIのopenLoginメソッドにベンダシステムのIDトークンが与えられると、Riiiverシステムはトークンの検証を行います。
iOS/ ERAuthクラス

public func openLogin(   
viewController:UIViewController,    
webView: WKWebView,    
vendorToken: String?,    
deviceIds: [String]?,    
delegate: ERAuthWebViewDelegate?)

Android/ com.riiiver.auth.ERAuthクラス

public void openLogin(   
final Activity activity,   
final WebView webView,   
final String vendorToken,   
final List<String> deviceIds,   
final IERAuthWebViewDelegate delegate)

ベンダシステムのIDトークンを使用しない場合は、vendorTokenにnil(or null)を指定します。検証フロー検証の結果、OKならRiiiverシステムの各種トークンを発行します。

Facebookログイン、Google SignIn対応デリゲートについて

FacebookまたはGoogle認証時にAPIはデリゲート(ERAuthDelegate)を呼び出します。デリゲートの実体はSDK利用者が実装を行う必要があります。実装にあたってはサンプルソースコードがありますので、そちらを参考にしてください。
iOS版

public protocol ERAuthDelegate {   
func refreshFacebook(completion: @escaping (ERAuthFacebookResult) -> Void)   
func loginFacebook(viewController: UIViewController?, completion: @escaping (ERAuthFacebookResult) -> Void)   
func logoutFacebook()       

func refreshGoogle(completion: @escaping (ERAuthGoogleResult) -> Void) 
func loginGoogle(viewController: UIViewController?, completion: @escaping (ERAuthGoogleResult) -> Void)   
func logoutGoogle()       
func interceptApplication(_ application: UIApplication, open url: URL, 
sourceApplication: String?, annotation: Any) -> Bool   
func interceptApplication(_ application: UIApplication,       
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?, 
resumeSessionWithCompletionHandler:((Any?,Error?)->Void)?) -> Bool}

Android版 (com.riiiver.auth.IERAuthDelegate)

public interface IERAuthDelegate {   
void refreshFacebook(IERAuthFacebookCallback callback);   
void loginFacebook(Activity activity, IERAuthFacebookCallback callback);   
void logoutFacebook();   

void refreshGoogle(IERAuthGoogleCallback callback);   
void loginGoogle(Activity activity, IERAuthGoogleCallback callback);    void logoutGoogle();   

boolean onActivityResult(final int requestCode, final int resultCode, final Intent data);}

  • refreshFacebook
  • Facebookにログイン済みかどうかをチェックし、Facebookのステータスと認証トークンを返します。
  • loginFacebook
  • Facebookへのログイン処理を行い、結果ステータスと認証トークンを返します。
  • logoutFacebook
  • Facebookからのログアウト処理を行います。
  • refreshGoogle
  • Googleにログイン済みかどうかをチェックし、Googleのステータスと認証トークンを返します。
  • loginGoogle
  • Googleへのログイン処理を行い、結果ステータスと認証トークンを返します。
  • logoutGoogle
  • Googleからのログアウト処理を行います。
  • interceptApplication
  • AppDelegateに記述するFacebook, Google認証からの復帰処理を行います。

ケース1) 暗黙のログイン
Facebookの場合のフロー(Googleの場合も同様です)認証APIがデリゲートのrefreshFacebook(Googleの場合は、refreshGoogle)を呼び出し、結果得られたトークンをRiiiverシステムで検証、OKならトークンを返します。このケースの場合は、認証画面は表示されません。
ケース2) ログイン画面からのログイン
Facebookの場合のフロー(Googleの場合も同様)認証画面でのFacebookログインを選択により、loginFacebookデリゲートを呼び出します。デリゲートで、Facebook SDKを用いた認証処理を行なってください。結果トークンをAPI側に返すと、Riiiverシステムはそれを用いた認証処理を行います。

-->