ノードバックエンドでexpress/express-session/passportを使用していますが、これは私のログアウトコードです。私のWebクライアントは正しくログアウトしますが、モバイルクライアントはありません
// GET /logout
exports.logout = (req, res) => {
req.logout();
if (req.body.type === "mobile") {
return res.status(200).json({success: true});
}
res.redirect('/');
};
このウェブアプリケーションはhttp://myapp.dev:3000
で動作します。私は、Webアプリケーション上にいて、ログアウトボタンをクリックしている限り、問題なくログイン/ログアウトできます。
私はまた、192.168.2.30:8100
で動作するイオン(モバイルアプリケーション)を持っています。モバイルアプリで[ログアウト]ボタンをクリックすると、いつものように/ログアウトをリクエストします。私は私のモバイルクライアント上でログアウトボタンをクリックすると
$stateProvider.state("auth.signout", {
url: "/signout",
controller: "SignoutController",
resolve: {
redirect: function($http, $state, Config) {
$http.get(`${Config.url("/logout")}`, {
type: "mobile"
}, {
withCredentials: true
}).then(res => {
$state.go('auth.signin');
}).catch(res => {
console.log(res);
alert("Could not log out");
});
}
}
});
、私は、JSONの背中を取得するが、私はそれを再接続し続けるので、私のモバイルクライアントからのCookieを削除することができません。
どうすればこの問題を防ぐことができますか?
クッキーを削除しようとしましたが、削除しようとしたときにどのようなエラーが発生しましたか? – VtoCorleone
@VtoCorleoneどうすればいいですか? webviewにクッキーを削除するよう伝えるバックエンドの義務でなければならず、 'req.logout()'はそれに必要なヘッダを設定すると信じています。私のWebアプリケーションには 'myapp.dev/logout'と入力するコードはありません。正しく動作します。 – Aris