나는 next('route')
이라는 표현을 사용하려고하는데이 방법에 관한 문서를 많이 찾지는 못했지만 here을 언급했다. 그러나 수행 방법을 설명하지 않습니다.app.method()를 사용하여 인증을 수행하는 방법
은 app.METHOD() 또는 router.METHOD() 함수를 사용하여로드 된 미들웨어 기능에서만 작동합니다.
나는 내가 전에 app.METHOD()
을 사용하지 다시 next('route')
제대로을 수행하는 방법에 대한 문서를 찾을 수없는 나는 결코 때문에 그 무엇을 의미하지 않습니다. 이게 효과가 있니?
app.method('*', (req, res, next) => {
if(req.user == null) {
next();
} else {
User.findOne({"_id": req.user.id}, function(err, result) {
if(err){
console.log(err);
} else {
if(stripe.active == false && stripe.trial == false){
res.render('/dashboard/billing');
next('route');
} else {
next();
}
}
});
}
});
작동 여부 나는 어딘가에서 뭔가를 엉망으로 추측하고있다. 내가 바로 그 다음에 사용자를 찾으면 is_active
과 is_trial
이 모두 거짓이며, 그렇다면 다음 경로로 건너 뜁니다. 내게 이렇게하는 생각은 로그인 한 사용자가없는 사이트의 어떤 부분이라도 사용할 수 있고 로그인 한 사용자가있을 때 둘 다 false 일 때 나는 단지 그들에게 /dashboard/billing
을 보내 게합니다. 이것은 나에게도 아직 재판을 지불하지 않은 사용자가 내 애플리케이션에 액세스하지 못하도록하는 방법으로 제안되었습니다. 나는에 대한 테스트입니다
노선 : 모든
// dashboard
app.get('/dashboard',
setRender('dashboard/index'),
setRedirect({auth: '/login'}),
isAuthenticated,
(req, res, next) => {
},
dashboard.getDefault);
너무 리터럴로 찍었습니다 ... 저주. 나머지는 괜찮은가요? 나는 그것을 작동 시키려고 노력하고 있지만 문제는 내 페이지가 모두로드되는 동안 사용자 프로파일의 변수를 false로 변경할 수 없다는 것입니다. 적어도 수동으로하는 방법을 모르겠습니다. – joshk132
나는 테스트를 위해'&&'를'||'로 바꿀 수 있다고 알았지 만, 여전히 원하지 않는 페이지로 나를 보내 줄 것 같습니다. – joshk132
stripe.active == false || 인 경우 다음 라우터로 사용자를 보내려고합니다. stripe.trial == false? –