「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
v02-20でリリース予定。
内容 †
- Apache Cordovaのテンプレート
- 通常のWebアプリケーションやSPAアプリケーションをホストする。
ニーズ †
- 既存WebアプリにWebAPIを追加、フロントエンドにデータ提供を行うだけで、
- 優れたUXを提供するフロントエンドが求められている。
- また、スマホ・ネイティブ機能をpluginさせたい。
- そんな開発を迅速化する、ハイブリットアプリ開発用のCordovaテンプレート
- テンプレート化
- plugin検証
- 様々なバックエンドと連携。
- IdMaaS機能(認証・決済, etc.)
- mBaaS機能(ストレージ, プッシュ通知, etc.)
機能 †
適切な設定 †
ホワイトリスト †
Cordovaの機能にある。
ネイティブアクセス(plugin) †
Cordovaの機能にある。
プッシュ通知 †
- phonegap-plugin-push
- プッシュ通知サービスと連携
地理位置情報 †
- cordova-plugin-geolocation
- GPSサービスと連携
認証 †
VS tools for Cordovaのpluginのトップも、ADALになっている。
また、以下のような、Webページも存在するので、
この辺(フロントエンドの認証)のニーズは高いと思われる。
要件:認証のUXの統一 †
すべての認証を汎用認証サイト経由で行う。
プロトコル †
OAuth2.0、OpenID Connectでサインイン。
内部(WebView?)でサインイン †
非推奨らしい。
外部ブラウザ選択してサインイン †
- この機能は、サーバ側実装も必要になるので、
OAuth 2.0 Resources Server(ASP.NET Core 2.0)にこの実装を追加する。
- ログイン前
- ログイン画面
- 認可エンドポイント
- ログイン完了後、認可エンドポイントで、QueryString?のflag情報をClaimに格納する。
- 認可エンドポイントを通過して、redirectエンドポイントに遷移する。
- ログイン後
- redirectエンドポイント(response_type=code)
- redirectエンドポイント(response_type=token)
サポート †
デプロイ、ストア登録手順の整備 †
Android †
iOS †
標準的?pluginの検証 †
- How to
- cordova-plugin-inappbrowser
- cordova-plugin-customurlscheme
How to †
UserAgent?を書き換える。 †
OverrideUserAgent?, AppendUserAgent? †
- config.xmlの設定ができる模様。
- OverrideUserAgent?
- AppendUserAgent?
- この設定は、
- 内部(WebView?)で開いた場合に有効。
- 外部ブラウザで開いた場合は、(当然ながら)無効。
参考 †
実機の際は、以下のサイトを活用できる。
リンクを外部ブラウザで開く †
既定では、
- httpが無いとWebView?内部で開く
- httpが有ると外部ブラウザで開く
cordova-plugin-inappbrowser †
cordova-plugin-inappbrowserというpluginが利用できそう。
参考 †
外部ブラウザからネイティブに遷移 †
ネイティブには、ハイブリッド(Cordova)を含む。
cordova-plugin-customurlscheme †
cordova-plugin-customurlschemeというpluginが利用できそう。
- Custom URL Schemeで外部ブラウザからネイティブ(ハイブリッド)に戻れる。
- ネイティブ(ハイブリッド)側から、外部ブラウザで指定したURLを取得可能。
- 以下のParameterをURLを使用して受け渡す。
参考 †
- cordova-plugin-customurlscheme
- Cordova tips - Custom URL scheme に対応させよう | phiary
http://phiary.me/cordova-tips-custom-url-scheme/
- pluginを追加する。
cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME=hoge --save
- urlを受け取る。
function handleOpenURL(url) {
setTimeout(function() {
alert("received url: " + url);
}, 0);
}
- EddyVerbruggen?/Custom-URL-scheme:
前提 †
認証 †
ログインの種類 †
- Webアプリへのログイン
Authenticate Code flow
- WebAPIへのログイン
Implicit flow
- ネイティブアプリ(ハイブリットアプリ)へのログイン
- Implicit flow
- Web Storage - localStorage等に記憶
ここで、恐らく、(2), (3)は同じImplicit flowで、
Bearer Tokenの取得後に、userinfoエンドポイントにアクセスするなどして認証完了とする。
UX的な前提 †
- あり
パスワード・マネージャを使用したいので、
なるべく、外部ブラウザを選択して使用したい。
- なし
内部(WebView?)でも外部ブラウザでも手打ち可能。
- アプリからのブラウザ起動
- 既定で内部(WebView?)になっている人。
- 既定で外部ブラウザになっている人。
参考 †
osscons.jp †
マイクロソフト系技術情報 Wiki †
.NET 開発基盤部会 Wiki †