-
HomeAppにログイン時取得したユーザー token。
$.ajax({ type: "POST", url: lg.rootUrl + '__token', processData: true, dataType: 'json', data: { grant_type: "password", username: username, password: pw, p_cookie: true }, headers: { 'Accept':'application/json', 'content-type': 'application/x-www-form-urlencoded' } })
-
User Cell & refresh token -> App HomeApp (cm.execApp)
-
App認証token // Get App Authentication Token
-
Engine Script方法(お勧め)
Common.getAppAuthToken = function(cellUrl) { let engineEndPoint = getEngineEndPoint(); return $.ajax({ type: "POST", url: engineEndPoint, data: { p_target: cellUrl }, headers: {'Accept':'application/json'} }); };
-
実際REST API (AJAX)方法
$.ajax({ type: "POST", url: Common.getAppCellUrl() + '__token', processData: true, dataType: 'json', data: { grant_type: "password", username: personalInfo.appTokenId, password: personalInfo.appTokenPw, p_target: Common.getCellUrl() }, headers: {'Accept':'application/json'} });
-
-
Appに認証された自分用のtoken(Schema認証token)
$.ajax({ type: "POST", url: cellUrl + '__token', processData: true, dataType: 'json', data: { grant_type: "refresh_token", refresh_token: Common.accessData.refToken, // HomeAppから貰ったのrefresh_token client_id: Common.getAppCellUrl(), client_secret: appToken //App認証tokenのaccess_token }, headers: {'Accept':'application/json'} });
-
Transcell Tokenを取得
return $.ajax({ type: "POST", url: Common.getCellUrl() + '__token', // 自分Cell URL processData: true, dataType: 'json', data: { grant_type: "refresh_token", refresh_token: Common.getRefressToken(), // 自分のrefresh token p_target: extCellUrl // 他人のURL }, headers: {'Accept':'application/json'} });
-
他人のApp認証token
// Get App Authentication Token-
Engine Script方法(お勧め)
Common.getAppAuthToken = function(cellUrl) { let engineEndPoint = getEngineEndPoint(); return $.ajax({ type: "POST", url: engineEndPoint, data: { p_target: cellUrl // 他人のURL }, headers: {'Accept':'application/json'} }); };
-
-
他人のAppに認証された自分用のtoken(Schema認証token)
$.ajax({ type: "POST", url: cellUrl + '__token', // 他人のURL processData: true, dataType: 'json', data: { grant_type: 'urn:ietf:params:oauth:grant-type:saml2-bearer', assertion: tcat, client_id: Common.getAppCellUrl(), client_secret: aaat }, headers: {'Accept':'application/json'} });
-
Box URL取得
例) https://demo.personium.io/dixonsiu/app-myboard
例) https://demo.personium.io/hoge/io_personium_demo_app-myboardCommon.getBoxUrlAPI = function(cellUrl, token) { return $.ajax({ type: "GET", url: cellUrl + "__box", headers: { 'Authorization':'Bearer ' + token, 'Accept':'application/json' } }); };
-
取得したBox URLを使う
「/MyBoardBox/my-board.json」 Barファイルの指定。 例) https://demo.personium.io/dixonsiu/app-myboard/MyBoardBox/my-board.json
例) https://demo.personium.io/hoge/io_personium_demo_app-myboard/MyBoardBox/my-board.jsonCommon.getAppDataAPI = function(targetBoxUrl, token) { let requestInfo = $.extend(true, { type: 'GET', url: targetBoxUrl + getAppDataPath(), headers: { 'Authorization':'Bearer ' + token, } }, getAppRequestInfo() ); return $.ajax(requestInfo); };
- #他人のものを見る を実施。 A -> B
- 他人の外部セル(extCell)
B -> C, D - 上記のセルに #他人のものを見る を実施。
A -> C, D
これ、いいですねぇ…
次回の勉強会は、これについてイロイロお聞きしたいと思います!