LoginSignup
1
0

More than 1 year has passed since last update.

GeneXus Access Manager(GAM) #3 GAM API(ログイン/ユーザ情報取得/ログアウト)

Posted at

#1#2に続きまして、GAMの検証を。GAM APIの基本として、ログイン~ユーザ情報取得~ログアウトまで。

ログイン

ドキュメントに記載の通り、GAMRepositoryオブジェクトのLoginメソッドを以下のパラメータ渡して呼び出します。
- UserName : GAMUserIdentification Type
- Password : GAMPassword Type
 ドキュメント記載のGAMDescriptionMedium Type と本検証の環境(17u3)にインポートされるGAMExampleLoginでのデータタイプに差異あり?
- AdditionalParameters : GAMLoginAddittionalParameters Type
- Errors : GAMError Type Collection

GAMLoginAddittionalParameters の AuthenticationTypeName で認証タイプを指定するが、LOCAL認証タイプの場合は不要とのこと。
GAM01.JPG

Event Enter
    &LoginOk = GAMRepository.Login(&UserName, &Password, &AdditionalParameters, &Errors)
    If &LoginOk
        WpAuth01.Call()
    Else
        For &Error In &Errors
            Msg(Format(!"%1 (GAM%2)", &Error.Message, &Error.Code))
        EndFor
    EndIf
Endevent

以上、ログイン画面で認証し、ログイン後初期画面オブジェクト(WpAuth01)をCallまで。
認証OK後の画面遷移についてGAMExampleLoginにおいては以下のように。

&URL = GAMRepository.GetLastErrorsURL()
If &URL.IsEmpty()
    GAMHome()
Else
    Link(&URL)
Endif

GAMRepository.GetLastErrorsURL()は、画面直撃⇒認証NG⇒ログイン画面⇒認証OK⇒元の画面パターンか。GAMHome()については別途確認・記載予定。

ユーザ情報参照

ドキュメントに複数方法が記載されていますが、

The following is a static method. The static methods refer to the currently logged in user:

って

次に示すのは静的メソッドです。静的メソッドは、現在ログインしているユーザーを参照します:

でよいのですかね。動きは別途確認します。
とりあえず、2つめの

もう 1 つは、アクティブなセッションを使用する方法です:

を利用して確認を進めます。

GAM02.JPG
ドキュメント記載の通り、セッション取得⇒ユーザ取得。

Event Start
    &GAMSession = GAMSession.Get(&Errors)
    &User = &GAMSession.User
EndEvent

GAM03.JPG

ログアウト

GAM04.JPG

Event 'Logout'
    GAMRepository.Logout(&Errors)
    GAMSampleLoginSimple01.Call()
Endevent

次回、その他API、ローカル以外のAuthentication Type確認、はたまたいったんAuthorization方面にシフト等検討します。

2021年07月12日 初版

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0