How to protect route in the server

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

I have made authentication, I use express-sessions and passports. so when the user login will save the session on the server. to access the route requires this session. the session that I created I saved it in redux store and when I checked getInitialProps there was reduxStore I want to use this as a reference if the user is not logged in, it will redirect to the login page.

In this case the url has changed but I cant access.

This page isn 't working localhost redirected you too many times. Try clearing your cookies. ERR_TOO_MANY_REDIRECTS

I cant use 'next/router' because Router only can access on client.

_app.js

import App, { Container } from 'next/app'
import React from 'react'
import withReduxStore from '../lib/with-redux-store'
import { Provider } from 'react-redux'
import { MuiThemeProvider } from '@material-ui/core/styles';
import CssBaseline from '@material-ui/core/CssBaseline';
import JssProvider from 'react-jss/lib/JssProvider';
import getPageContext from '../lib/getPageContext';
import  '../index.css';

class MyApp extends App {
  static async getInitialProps(something){
    const { Component, router, ctx } = something;
    const initialState = ctx.reduxStore.getState();

    if(Object.keys(initialState.auths.admin).length === 0){
      ctx.res.writeHead(302, {
        Location: '/login'
      });
      ctx.res.end();
      res.finished = true;
      return {}
    }
    let pageProps = {}
    if (Component.getInitialProps) {
      pageProps = await Component.getInitialProps(ctx)
    }
    return { pageProps }
  }

  constructor() {
    super();

    this.pageContext = getPageContext();

  }
  componentDidMount() {

    // Remove the server-side injected CSS.
    const jssStyles = document.querySelector('#jss-server-side');
    if (jssStyles && jssStyles.parentNode) {
      jssStyles.parentNode.removeChild(jssStyles);
    }
  }

  render() {
    const { Component, pageProps, reduxStore } = this.props

    return (
      <Container>
        <Provider store={reduxStore}>
          <
                                                
                                                
0 views
0 shares

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.