Ionic Cloudの認証サービスを使用してユーザーログインを実装しようとしており、Cordova inAppBrowserを表示しないことをお勧めします。認証エラー(パスワードが間違っているなど)が発生した場合は、エラーハンドラが起動することが予想されますが、何らかの理由でこれが実行されることはありません。Ionic custom authでログインエラーを処理するには?
私のログイン・コンポーネントのメソッドは、これを含んでいます
let loginData = {
email: this.email,
password: this.password
};
let loginOptions: AuthLoginOptions = {
inAppBrowserOptions: {
hidden: true
}
};
this.auth.login('custom', loginData, loginOptions).then(() => {
console.log('login success');
}, (err) => {
console.log('login error', err); // <-- this never gets executed.
});
私は、認証サーバ401のHTTPステータスおよびエラーのプロパティが含まれているJSONボディに応答することを確認しました。これはコード(PHP、Laravel 3)である:どうやら方法はありません
- https://github.com/driftyco/ionic-cloud/issues/53
- https://github.com/driftyco/ionic-cloud-angular/issues/22
:私は、関連するようだgithubの上の2つの問題が見つかりました
public function get_login()
{
try {
$redirect_uri = CustomAuthentication::process(
$_GET['token'],
$_GET['state'],
$_GET['redirect_uri']
);
return Redirect::to($redirect_uri);
} catch (\Exception $e) {
return Response::json(array(
'ok' => false,
'error' => $e->getMessage(),
'code' => $e->getCode()
), 401);
}
}
inAppBrowserが非表示になっているときに、これを動作させるようにします。それとも別のオプションがありますか?
これを実現する方法がない場合は、ユーザーに良いログインフローを提供するために、代替手段はありますか。ログイン試行が失敗した場合に意味のあるエラーメッセージが表示されます。
これを可視のinAppBrowserで実装する必要がありますか?その場合は、ドキュメントやサンプルはどこにありますか?
公式のドキュメントはあまり教えていません(http://docs.ionic.io/services/auth/custom-auth.html#login)、私が見つけたチュートリアルは古くなっています。