#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認証タイプの場合は不要とのこと。
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 つは、アクティブなセッションを使用する方法です:
を利用して確認を進めます。
Event Start
&GAMSession = GAMSession.Get(&Errors)
&User = &GAMSession.User
EndEvent
ログアウト
- GAM API を使用した認証とログアウトの実装(wiki.genexus.jp)
- Implementing Authentication and Logout Using the GAM API(wiki.genexus.com)
Event 'Logout'
GAMRepository.Logout(&Errors)
GAMSampleLoginSimple01.Call()
Endevent
次回、その他API、ローカル以外のAuthentication Type確認、はたまたいったんAuthorization方面にシフト等検討します。
2021年07月12日 初版