사용자가 다른 페이지를 클릭하면 사용자 ID를 가져옵니다. 토큰을 생성할 때 uid 솔트 또는 더 복잡한 암호화 알고리즘을 사용하여 토큰을 암호화하고 생성합니다. 사용자 ID를 받은 후 해당 ID를 이용해 암호화하고 토큰과 비교합니다. 동의하시면 로그인이 됩니다. (이것이 아마도 당신이 달성하고 싶은 효과일까요?)
잠깐만요, Single Sign-On을 위한 토큰 문제를 고려하는 것 외에도 A사이트에 로그인할 때 B사이트를 열 때 생성된 정보를 직접 가져오는 방법을 고려해야 합니다. 실제로, 다른 사이트의 쿠키와 세션은 서로 다르기 때문에 얻을 수 없습니다. 나는 ucenter가 무엇을 하는지 보았습니다. A는 로그인한 후 js를 통해 그의 모든 형제 사이트에 대한 http 요청을 시작합니다. 이는 로그인 작업을 위해 모든 사이트에 토큰을 전달하는 것과 같습니다.
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 인터페이스로 보내 로그인 정보를 확인하세요
PC측에서 동일한 1차 도메인 이름으로 Single Sign-On하면 쿠키만 작동하면 됩니다.
물론 토큰을 사용하는 것과 쿠키를 사용하는 것은 동일합니다.
원칙은 거의 같습니다. 구현하면 안 돼요 그냥 보세요,
1. 새 페이지에서 토큰을 받을 수 있나요? 2. 토큰을 기반으로 Redis에서 사용자 데이터를 확인할 수 있나요? 3. 사용자 데이터를 확인할 수 있다면 다른 질문이 있나요?
주요 질문은 사용자가 방문할 때 토큰 정보를 어떻게 가져오도록 하느냐입니다.
Redis를 이용하여 저장한 후, 쿠키 값으로 검증합니다.
사용자가 다른 페이지를 클릭하면 사용자 ID를 가져옵니다. 토큰을 생성할 때 uid 솔트 또는 더 복잡한 암호화 알고리즘을 사용하여 토큰을 암호화하고 생성합니다. 사용자 ID를 받은 후 해당 ID를 이용해 암호화하고 토큰과 비교합니다. 동의하시면 로그인이 됩니다. (이것이 아마도 당신이 달성하고 싶은 효과일까요?)
잠깐만요, Single Sign-On을 위한 토큰 문제를 고려하는 것 외에도 A사이트에 로그인할 때 B사이트를 열 때 생성된 정보를 직접 가져오는 방법을 고려해야 합니다. 실제로, 다른 사이트의 쿠키와 세션은 서로 다르기 때문에 얻을 수 없습니다. 나는 ucenter가 무엇을 하는지 보았습니다. A는 로그인한 후 js를 통해 그의 모든 형제 사이트에 대한 http 요청을 시작합니다. 이는 로그인 작업을 위해 모든 사이트에 토큰을 전달하는 것과 같습니다.
Token은 실제로 비밀번호를 대체합니다. user_id=xxx&token=xxxx. 사용자 ID를 통해 로그인 정보를 쿼리하고 쿼리된 토큰이 매개변수 token과 일치하는지 비교합니다.
Single Sign-On을 위해 제가 생각한 솔루션예를 들어
pay.test.com에서 쿠키 정보를 받아 Passport.test.com 인터페이스로 보내 로그인 정보를 확인하세요사용자 센터 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");
사용자의 로그인 정보를 암호화하여 쿠키에 기록합니다