React Private Route Redirect not working with Asp.net core











up vote
0
down vote

favorite












I have created one website with Asp.Net Core and typescript/webpack/react in vs 2017.



Basically, I have 3 pages: Home Index Page, Login Page and Dashboard in my website. Home page is the main page to render react app.



If user logs in, the Dashboard component will be rendered and if not then the login component will be rendered in Home Index view.



Below is my main app that list out routes:



export class App extends React.Component<{}, {}> {
constructor(props) {
super(props);
}

public render() {
return (
<div >
<Route exact path="/" component={Login} />
<Route exact path="/login" component={Login} />
<Layout>
<PrivateRoute exact path="/dashboard" component={Dashboard} />
</Layout>
</div>
);
}
}


and PrivateRoute is like:



export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
localStorage.getItem('user') ?
<Component {...props} /> :
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}} />
)}/>
)


This is working like if not logged in, then it goes back to login component (inside Home Index) url. But issue is, if I just refresh that page from browser (localhost:1234/login), then it tries to find this /login in MVC Routing so it gives me error like below:



enter image description here



If I remove Redirect from PrivateRoute then it works properly. So I think the issue is with MVC routing takes place for redirect.










share|improve this question









New contributor




ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Share us your startup.cs. Is there any demo to reproduce your issue? I try to make a test with PrivateRoute, fail to reproduce your issue, it does not look for the Index page.
    – Tao Zhou
    Nov 22 at 6:42















up vote
0
down vote

favorite












I have created one website with Asp.Net Core and typescript/webpack/react in vs 2017.



Basically, I have 3 pages: Home Index Page, Login Page and Dashboard in my website. Home page is the main page to render react app.



If user logs in, the Dashboard component will be rendered and if not then the login component will be rendered in Home Index view.



Below is my main app that list out routes:



export class App extends React.Component<{}, {}> {
constructor(props) {
super(props);
}

public render() {
return (
<div >
<Route exact path="/" component={Login} />
<Route exact path="/login" component={Login} />
<Layout>
<PrivateRoute exact path="/dashboard" component={Dashboard} />
</Layout>
</div>
);
}
}


and PrivateRoute is like:



export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
localStorage.getItem('user') ?
<Component {...props} /> :
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}} />
)}/>
)


This is working like if not logged in, then it goes back to login component (inside Home Index) url. But issue is, if I just refresh that page from browser (localhost:1234/login), then it tries to find this /login in MVC Routing so it gives me error like below:



enter image description here



If I remove Redirect from PrivateRoute then it works properly. So I think the issue is with MVC routing takes place for redirect.










share|improve this question









New contributor




ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Share us your startup.cs. Is there any demo to reproduce your issue? I try to make a test with PrivateRoute, fail to reproduce your issue, it does not look for the Index page.
    – Tao Zhou
    Nov 22 at 6:42













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have created one website with Asp.Net Core and typescript/webpack/react in vs 2017.



Basically, I have 3 pages: Home Index Page, Login Page and Dashboard in my website. Home page is the main page to render react app.



If user logs in, the Dashboard component will be rendered and if not then the login component will be rendered in Home Index view.



Below is my main app that list out routes:



export class App extends React.Component<{}, {}> {
constructor(props) {
super(props);
}

public render() {
return (
<div >
<Route exact path="/" component={Login} />
<Route exact path="/login" component={Login} />
<Layout>
<PrivateRoute exact path="/dashboard" component={Dashboard} />
</Layout>
</div>
);
}
}


and PrivateRoute is like:



export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
localStorage.getItem('user') ?
<Component {...props} /> :
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}} />
)}/>
)


This is working like if not logged in, then it goes back to login component (inside Home Index) url. But issue is, if I just refresh that page from browser (localhost:1234/login), then it tries to find this /login in MVC Routing so it gives me error like below:



enter image description here



If I remove Redirect from PrivateRoute then it works properly. So I think the issue is with MVC routing takes place for redirect.










share|improve this question









New contributor




ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I have created one website with Asp.Net Core and typescript/webpack/react in vs 2017.



Basically, I have 3 pages: Home Index Page, Login Page and Dashboard in my website. Home page is the main page to render react app.



If user logs in, the Dashboard component will be rendered and if not then the login component will be rendered in Home Index view.



Below is my main app that list out routes:



export class App extends React.Component<{}, {}> {
constructor(props) {
super(props);
}

public render() {
return (
<div >
<Route exact path="/" component={Login} />
<Route exact path="/login" component={Login} />
<Layout>
<PrivateRoute exact path="/dashboard" component={Dashboard} />
</Layout>
</div>
);
}
}


and PrivateRoute is like:



export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
localStorage.getItem('user') ?
<Component {...props} /> :
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}} />
)}/>
)


This is working like if not logged in, then it goes back to login component (inside Home Index) url. But issue is, if I just refresh that page from browser (localhost:1234/login), then it tries to find this /login in MVC Routing so it gives me error like below:



enter image description here



If I remove Redirect from PrivateRoute then it works properly. So I think the issue is with MVC routing takes place for redirect.







reactjs asp.net-core webpack react-router






share|improve this question









New contributor




ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Nov 22 at 5:09









Tân Nguyễn

1




1






New contributor




ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Nov 21 at 19:52









ldev

11




11




New contributor




ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






ldev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Share us your startup.cs. Is there any demo to reproduce your issue? I try to make a test with PrivateRoute, fail to reproduce your issue, it does not look for the Index page.
    – Tao Zhou
    Nov 22 at 6:42


















  • Share us your startup.cs. Is there any demo to reproduce your issue? I try to make a test with PrivateRoute, fail to reproduce your issue, it does not look for the Index page.
    – Tao Zhou
    Nov 22 at 6:42
















Share us your startup.cs. Is there any demo to reproduce your issue? I try to make a test with PrivateRoute, fail to reproduce your issue, it does not look for the Index page.
– Tao Zhou
Nov 22 at 6:42




Share us your startup.cs. Is there any demo to reproduce your issue? I try to make a test with PrivateRoute, fail to reproduce your issue, it does not look for the Index page.
– Tao Zhou
Nov 22 at 6:42

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






ldev is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53419578%2freact-private-route-redirect-not-working-with-asp-net-core%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes








ldev is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















ldev is a new contributor. Be nice, and check out our Code of Conduct.













ldev is a new contributor. Be nice, and check out our Code of Conduct.












ldev is a new contributor. Be nice, and check out our Code of Conduct.















 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53419578%2freact-private-route-redirect-not-working-with-asp-net-core%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

What visual should I use to simply compare current year value vs last year in Power BI desktop

How to ignore python UserWarning in pytest?

Alexandru Averescu