• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 리덕스로 로그인을 하면 pw가 노출됩니다

리덕스로 로그인을 하면 pw가 노출됩니다

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #57279

    정근혁
    참가자
    제목 그대로입니다. 만약 login을 리덕스를 이용해서 서버랑 연결시켜서 로그인시킬시.. 
    pw가 노출되는것같은데 어떻게 해야할까요?
     
    
    =========login page======= =========
    const Loginpage = () => {
      const dispatch = useDispatch();
      const [email, setEmail] = useState('');
      const [pw, setPw] = useState('');
      const onEmailHandler = function (e) {
        setEmail(e.currentTarget.value);
      };
      const onPwlHandler = function (e) {
        setPw(e.currentTarget.value);
      };
      const onSubmitHandler = function (e) {
        let body = { email: email, password: pw, hello: '??' };
        e.preventDefault();
        dispatch(LoginUser(body));
      };
      return (
        <div style={{ display: 'flex', justifyContent: 'center' }}>
          <form
            action=''
            style={{
              display: 'flex',
              flexDirection: 'column',
              gap: '10px',
            }}
          >
            <label htmlFor=''>E-mail</label>
            <input
              type='text'
              name={email}
              onChange={onEmailHandler}
              placeholder='abc123@abc.com'
            />
            <label htmlFor=''>Password</label>
            <input
              type='password'
              name={pw}
              onChange={onPwlHandler}
              placeholder='password'
            />
            <button onClick={onSubmitHandler}>Login</button>
          </form>
        </div>
      );
    };
    ===============user_slice================
    
    ///////////////////////여기서 login하면서 data를 받아와서 axios로 서버로 보내는데
    이과정에서 f12-network를 보니 login requset가 보여서 살펴보니 payload에 loginpage에서 만든 body값 전체가 들어오면서
    email,pw,가 그대로 노출됩니다. 이게 리액트라서 그냥일단 보이는건지 아니면 실제 배포하면 사라지는건지? 궁금합니다.
    만약 안사라진다면 리덕스를 이용해서는 로그인기능을 구현하면안되는건가요?
    export const LoginUser = createAsyncThunk('LOGIN_USER', async (data) => {
      return axios.post('/api/user/login', data).then((response) => response.data);
    });
    const userSlice = createSlice({
      name: 'user',
      initialState,
      reducers: {},
      extraReducers: (builder) => {
        builder.addCase(LoginUser.fulfilled, (state, { payload }) => {
          state.loginSuccess = payload;
        });
      },
    });
    #57307

    codingapple
    키 마스터
    리덕스랑상관없이 ajax요청으로 전달하는 데이터는 원래 브라우저안에서 잘 보입니다 
    나중에 https만 잘 쓰면 됩니다
    #57406

    정근혁
    참가자
    아.. 그렇군요.. 그러면 어차피 본인이 로그인할때만 잠깐보이는거라 보안상 문제는 없는거죠?
    
    
    
    #57467

    codingapple
    키 마스터
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠