私はPassportJS経由でクライアントサイド角度アプリケーションへのアクセスを制限しようとしています。平均 - NodeJSルートをオーバーライドした角度のルート
基本的に私は、ログインするために認証プロバイダにリダイレクトするために、そのアプリケーションにアクセスしようとしている誰かをルーティングしようとしています。しかし、角度のあるルートがNodeJS Expressルートを上回るように見えます。
私が '/'に行くと、角型アプリケーションを読み込んでリダイレクトしません。これは、角度ルートと同じルートを使用するすべてのルートで同じケースです。
server.jsはスニペット:
次のコードは、Facebookのにログインするために皆をリダイレクトする必要があります。代わりに角インデックスページを読み込むだけです。
function checkAuthentication(req,res,next){
if(req.isAuthenticated()){
//if user is looged in, req.isAuthenticated() will return true
console.log("/ " + true);
res.sendFile(path.join(__dirname, 'dist/index.html'));
} else{
console.log("/ " + false);
res.redirect("/api/passport/login/facebook");
}
}
app.get('/*', checkAuthentication ,(req, res) => {
});
角度のindex.htmlスニペット:
エクスプレスルータに表示されているようにindex.htmlページは、同じ経路を使用します。
<base href="/">
のは、私はそうのように「/アプリ/」を使用するようにindex.htmlをベースHREFを変更しましょう:
<base href="/app/">
と「/アプリ/のユーザーでログインしてリダイレクトするように明示して、ルーティング設定直接/アプリ ''::
angular.route例
app.use("/app", express.static(path.join(__dirname, 'dist')));
function checkAuthentication(req,res,next){
if(req.isAuthenticated()){
//if user is looged in, req.isAuthenticated() will return true
console.log("/app" + true);
res.sendFile(path.join(__dirname, '../../dist/index.html'));
} else{
console.log("/app" + false);
res.redirect("/api/passport/login/facebook");
}
}
router.get('/app', checkAuthentication, (req, res) => {
console.log("approuter hit");
});
module.exports = router;
とに行くのでLIKE'。それでも角度index.htmlページが読み込まれ、ログインするようにリダイレクトされません。しかし、 '/'に行くと、ログインするようにリダイレクトされます。
NodeJSエクスプレスの角度オーバーライディングを停止するにはどうしたらいいですか?ルート?
UPDATE:
app.route.jsはスニペット:
import { Routes } from '@angular/router';
import { HomeComponent } from './home';
export const ROUTES: Routes = [
{ path: '', component: HomeComponent },
];
を通信する一般的な方法は、あなたが最初の角のルートの詳細を投稿してもらえますか? –
@mohituprim角度経路の関連部分を含めました。あなたが完全なものを必要とする場合は、尋ねるだけです。 –