ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
On Mobile App Authentication データベースメソッド
|
$1 -> On Mobile App Authentication データベースメソッド -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
$1 | オブジェクト |
![]() |
モバイルアプリから渡された情報 | |||||
戻り値 | オブジェクト |
![]() |
認証ステータス | |||||
On Mobile App Authentication データベースメソッド は、4D Server あるいは4D デベロッパーへのモバイルアプリの認証を管理するためのものです。これはユーザーエージェントが4D Server あるいは4D デベロッパーに対してログインリクエストを最初に送ったときに、4D によって自動的に呼び出されます。
注: ユーザーエージェントとはアプリケーションID、デバイスID、そしてチームID によって定義されます。ID はOn Mobile App Authentication データベースメソッド に渡されます(以下参照)。
On Mobile App Authentication データベースメソッド は、初回の接続の際には必ず呼び出されます。モバイルアプリがゲストモードでビルドされていた場合でも呼び出されます。
メソッドは全ての必要な情報を、モバイルアプリから$1 引数(オブジェクト型)内に受け取り、認証ステータスを$0 引数(オブジェクト型)に返さなければいけません。これらの引数は以下のように宣言し初期化しなければなりません:
//On Mobile App Authentication データベースメソッド
C_OBJECT($0;$1)
// ...メソッド用のコード
$0:=New object //返すオブジェクトを作成するのを忘れないでください
$1 オブジェクト引数に受け取られるプロパティは以下の通りです:
プロパティ名 | 型 | 詳細 | |
テキスト | ユーザーのEメール。必須ではなく、ゲストアクセスでは空でもよい | ||
application | オブジェクト | モバイルアプリについての情報 | |
id | テキスト | モバイルアプリのID | |
name | テキスト | モバイルアプリの名前 | |
version | テキスト | モバイルアプリのバージョン | |
device | オブジェクト | モバイルデバイスについての情報(通常は携帯電話) | |
id | テキスト | 生成されたデバイス固有のID | |
version | テキスト | デバイスのシステムバージョン | |
description | テキスト | デバイスについての詳細 | |
simulator | ブール | デバイスがシミュレーターである場合にはTrue | |
team | オブジェクト | Apple デベロッパーチーム情報 | |
id | テキスト | チームID(これによってデベロッパーはXcode プロジェクトのビルド機能と実行機能を使用できるようになります) | |
language | オブジェクト | ユーザーデバイスの言語設定 | |
id | テキスト | ユーザーデバイスのカレント言語ID。例: en_US | |
region | テキスト | ユーザーデバイスのカレントのリージョン設定。例: US | |
code | テキスト | ユーザーデバイスのカレントの言語。例: en | |
parameters | オブジェクト | 他にモバイルアプリでカスタム使用のために追加可能なその他の情報 | |
session | オブジェクト | セッション情報 | |
id | テキスト | この認証用に作成されたセッションUUID。将来の使用のために保存することもできます。 | |
ip | テキスト | クライアントのIP アドレス |
情報を処理したあと、データベースメソッドは$0 に以下のプロパティを持つオブジェクトを返さなければなりません:
プロパティ名 | 型 | 詳細 |
userInfo | オブジェクト | フィルタークエリに使用できるユーザー値。 |
success | ブール | 認証が成功した場合にはTrue 、それ以外の場合にはFalse。success=False の場合、接続は拒否されます。 |
statusText | テキスト | (任意) モバイルアプリで表示するメッセージ。success=true の場合にはようこそメッセージ、success=false の場合にはユーザーへの説明を表示するのに使用することができます。 |
以下の場合には接続が自動的に拒否されます:
接続が"localhost" から来る場合には、デベロッパーが接続テストをしているとみなされるため、接続は自動的に受け入れられます。
モバイルアプリの接続リクエストの認証というのは、基本的には提供されたEメールに基づいています。例えば、4d.com ドメインのEメールからの接続のみ認証をしたい場合には、On Mobile App Authentication データベースメソッド を使って以下のように書くことができます:
If($1.email="@"+Char(At sign)+"4d.com")
$0.success:=True
End if
$1 オブジェクトのapplication.id, device.id, あるいは team.id といった情報を用いてユーザーエージェントを識別し、アクセスを認証するか拒否するかを決定することもできます。
モバイルアプリが、"接続にはEメールが必要"オプションにチェックをしないでビルドされていた場合、そのアプリは"ゲストモード"アプリとなります。この場合、$1.email の文字列は空で提供されます。この場合、以下のいずれかを選択することができます:
以下はOn Mobile App Authentication データベースメソッド の一例です:
//On Mobile App Authentication データベースメソッド
C_OBJECT($0)
C_OBJECT($1)
C_BOOLEAN($Boo_simulator)
C_TEXT($Txt_appID;$Txt_appName;$Txt_appVersion;$Txt_device;$Txt_deviceID;$Txt_email)
C_TEXT($Txt_IP;$Txt_languageCode;$Txt_languageId;$Txt_languageRegion;$Txt_osVersion;$Txt_sessionId)
C_TEXT($Txt_teamID)
C_OBJECT($Obj_request;$Obj_response)
$Obj_request:=$1 //モバイルアプリから提供された情報
$Obj_response:=New object //処理の後に$0 に返す
//ユーザーのEメールを取得
$Txt_email:=String($Obj_request.email)
If(Length($Txt_email)=0) //メールは提供されなかった
// ゲストモード - 接続を認証または拒否する
$Obj_response.success:=True
// $Obj_response.success:=False ゲストアクセスを拒否した場合はこちら
// モバイルアプリに表示されるようこそメッセージ(オプション)
$Obj_response.statusText:="Welcome to my application"
Else
// 認証モード - 接続を認証または拒否する
If(Is compiled mode) // 配布版である
//例えば4D.com ドメインからのメールであれば認証する
$Obj_response.success:=($Obj_request.email=("@"+Char(At sign)+"4d.com"))
Else //開発版である
// テスト目的のため、すべてのアドレスを許可する
$Obj_response.success:=True
End if
If($Obj_response.success)
// モバイルアプリに表示するようこそメッセージ(オプション)
$Obj_response.statusText:="Authentication successful"
Else
$Obj_response.statusText:=$Obj_request.email+" is not an authorized email address."
End if
End if
// 識別が必要であればアプリ情報を取得する(任意)
If($Obj_request.application#Null)
$Txt_appID:=$Obj_request.application.id // アプリID
$Txt_appName:=$Obj_request.application.name // アプリ名
$Txt_appVersion:=$Obj_request.application.version // アプリバージョン
End if
// 識別が必要であればデバイス情報を取得する(任意)
If($Obj_request.device#Null)
$Txt_device:=$Obj_request.device.description //デバイス詳細
$Txt_deviceID:=$Obj_request.device.id //デバイスID
$Txt_osVersion:=$Obj_request.device.version //システム情報
$Boo_simulator:=$Obj_request.device.simulator //デバイスがシミュレーターであればTrue
End if
// 必要であればチーム情報を取得(任意)
If($Obj_request.team#Null)
$Txt_teamID:=$Obj_request.team.id // チームID
End if
// 必要であればユーザー言語情報を取得する(任意)
If($Obj_request.language#Null)
$Txt_languageCode:=$Obj_request.language.Code
$Txt_languageId:=$Obj_request.language.id
$Txt_languageRegion:=$Obj_request.language.region
End if
// セッション情報を取得
If($Obj_request.session#Null)
// 将来の使用のために保存も可能
$Txt_sessionId:=$Obj_request.session.id // この認証のために作成されたUUID
$Txt_IP:=$Obj_request.session.ip //IP アドレス
End if
// アプリの引数を取得
If($Obj_request.parameters#Null)
// モバイルアプリから追加されるその他の追加情報(C_OBJECT)
End if
$0:=$Obj_response
4D for iOS Documentation
MOBILE APP REFRESH SESSIONS
On Mobile App Action データベースメソッド
プロダクト: 4D
テーマ: データベースメソッド
初出: 4D v17 R2
ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)