sayid760 / fe-daily-question

前端每日一题面试题
MIT License
1 stars 1 forks source link

如何实现SSO单点登录?不同域名如何实现单点登录? #18

Open sayid760 opened 3 years ago

sayid760 commented 3 years ago

单点登录原理:每个系统里创建的session都放到第三方里共享(可以redis、mySql、文件系统里),所有的请求都指向这个第三方

  1. 父域相同,cookie domain属性可共享,比如 a.apple.com b.apple.com
  2. 认证中心CAS(比较麻烦)
  3. LocalStorage 跨域 iframe + postMessage
    
    // test1.com/login.html
    <form name='user' action='LoginController.php' method='post'>
    <input type='text' value='admin' name='username'/>
    <input type='password' value='123456' name='password'/>
    <input type='button' onclick='login()' name='login' value='登录'>
    </form>

// test2.com/iframepage.html

// test2.com/home.php