统一登录(Single Sign-On, SSO)是一种身份验证机制,允许用户使用一组凭据登录多个相关但独立的软件系统。在两个域名之间实现统一登录,意味着用户只需在一个域名下登录,就可以访问另一个域名下的资源,无需再次输入用户名和密码。
// 主域名登录页面
document.cookie = "sessionId=123456; domain=.example.com; path=/";
// 子域名验证页面
if (document.cookie.indexOf("sessionId=123456") !== -1) {
// 验证通过
}
// 子域名请求登录
window.location.href = "https://main.example.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&response_type=code";
// 子域名获取访问令牌
fetch("https://main.example.com/oauth/token", {
method: "POST",
body: new URLSearchParams({
grant_type: "authorization_code",
code: "AUTHORIZATION_CODE",
redirect_uri: "REDIRECT_URI",
client_id: "CLIENT_ID",
client_secret: "CLIENT_SECRET"
})
})
.then(response => response.json())
.then(data => {
const accessToken = data.access_token;
// 验证访问令牌
});
domain
属性设置为父域名,并且path
属性设置为根路径。通过以上方法,可以在两个域名之间实现统一登录,提升用户体验和安全性。
领取专属 10元无门槛券
手把手带您无忧上云