Ionicフレームワークを使用して既存のWebサイトをハイブリッドアプリに変換しようとしています。ログイン時に、サーバはセッションクッキーを送信して他のコールで使用するようにしますが、クッキーはブラウザに保存されず、アクセス試行時にログインリダイレクトされます。私はログインの送信に以下の機能を使用します。Ionic/Angular AppでCookieベースの認証が機能しない
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let url = 'http://localhost/api/auth/login';
var data = 'username=' + this.credentials.username + '&password=' +
this.credentials.password + '&captchaResponse=';
this.http.post(url, data, {headers: headers})
.subscribe(data => {
if(data.json().result == 'success'){
this.navCtrl.setRoot(FaultsPage);
} else {
alert('Wrong username or password');
}
}, err => {
console.error('Error: ', err);
alert('Something went wrong, try again later');
});
サーバーは資格情報を受け入れ、セッションCookieを送信します。 Access-Control-Allow-Credentialsは、サーバー側でtrueに設定されています。
また、手動でCookieを設定しようとしましたが、Set-Cookieヘッダーにアクセスできません。
My Ionicバージョンは3.4.0で、Angular 4.2.2を使用しています。
編集:WebサイトのサーバーがCORSをサポートしていないため、CORS機能をサーバーのローカルコピーに実装しているため、URLはlocalhost上にあります。 – Eldarfin