javascript - redis를 사용하여 싱글 로그인 구현
我想大声告诉你
我想大声告诉你 2017-05-24 11:30:41
0
5
853

사용자가 로그인한 후 사용자 정보가 redis에 저장되고 동시에 토큰 값이 생성됩니다. 사용자가 다른 인터페이스를 클릭하면 토큰 값이 전달되고 로그인 상태가 표시됩니다. 내가 작성한 코드는 항상 구현에 실패하나요?

我想大声告诉你
我想大声告诉你

모든 응답(5)
淡淡烟草味

PC측에서 동일한 1차 도메인 이름으로 Single Sign-On하면 쿠키만 작동하면 됩니다.
물론 토큰을 사용하는 것과 쿠키를 사용하는 것은 동일합니다.
원칙은 거의 같습니다. 구현하면 안 돼요 그냥 보세요,

1. 새 페이지에서 토큰을 받을 수 있나요? 2. 토큰을 기반으로 Redis에서 사용자 데이터를 확인할 수 있나요? 3. 사용자 데이터를 확인할 수 있다면 다른 질문이 있나요?

阿神

주요 질문은 사용자가 방문할 때 토큰 정보를 어떻게 가져오도록 하느냐입니다.
Redis를 이용하여 저장한 후, 쿠키 값으로 검증합니다.

我想大声告诉你

사용자가 다른 페이지를 클릭하면 사용자 ID를 가져옵니다. 토큰을 생성할 때 uid 솔트 또는 더 복잡한 암호화 알고리즘을 사용하여 토큰을 암호화하고 생성합니다. 사용자 ID를 받은 후 해당 ID를 이용해 암호화하고 토큰과 비교합니다. 동의하시면 로그인이 됩니다. (이것이 아마도 당신이 달성하고 싶은 효과일까요?)

Ty80

잠깐만요, Single Sign-On을 위한 토큰 문제를 고려하는 것 외에도 A사이트에 로그인할 때 B사이트를 열 때 생성된 정보를 직접 가져오는 방법을 고려해야 합니다. 실제로, 다른 사이트의 쿠키와 세션은 서로 다르기 때문에 얻을 수 없습니다. 나는 ucenter가 무엇을 하는지 보았습니다. A는 로그인한 후 js를 통해 그의 모든 형제 사이트에 대한 http 요청을 시작합니다. 이는 로그인 작업을 위해 모든 사이트에 토큰을 전달하는 것과 같습니다.

Ty80

Token은 실제로 비밀번호를 대체합니다. user_id=xxx&token=xxxx. 사용자 ID를 통해 로그인 정보를 쿼리하고 쿼리된 토큰이 매개변수 token과 일치하는지 비교합니다.

Single Sign-On을 위해 제가 생각한 솔루션

예를 들어
사용자 센터 Passport.test.com
결제 센터 pay.test.com
Passport.test.com에서
p3p 헤더 설정("P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");
사용자의 로그인 정보를 암호화하여 쿠키에 기록합니다

pay.test.com에서 쿠키 정보를 받아 Passport.test.com 인터페이스로 보내 로그인 정보를 확인하세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿