刚才突然想明白了单点登录的token为什么不需要针对每个用户都存一个session。 服务器这边准备一个密码字符串,各服务器保持字符串一样。 当用户登录一台服务器成功后,服务器将他的账号和密码字符串通过算法整合一下,形成一个新的字符串。通常这个算法会将密码字符串用哈希的方式来处理(即在新的字符串中不知道这个密码是多少),但账号可以直接在新的字符串中拿到。 这样,服务器将这个新的字符串给用户(即保存在cookie中,或保存在storage中)。用户每次访问,都会带上这个字符串(类似jsessionid)。 服务器这边拿到用户带来的字符串,从中取出账号,将账号和服务器这边存的密码用相同算法整合,形成新的字符串,用这个字符串和用户带来的字符串比对,看是否相同,相同,即通过,不同,让用户去登录。 |
|