# nodejs-sso-example **Repository Path**: bingookfantasy/nodejs-sso-example ## Basic Information - **Project Name**: nodejs-sso-example - **Description**: 🌰 一个基于 Node.js 实现的单点登录实例。 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-05-02 - **Last Updated**: 2022-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Node.js 单点登录实例 一个基于 Express 实现的 Node.js 单点登录实例,核心思路是通过重定向到统一的认证中心进行登录验证。 不过,通过研究淘宝 & 天猫、京东和谷歌的单点登录机制发现,他们都是通过跨域设置 cookie 来实现的,其中淘宝和京东通过 JSONP 设置,谷歌通过重定向方式设置,计划日后通过这样的方式再实现一个例子。 ## 如何测试 运行 Demo 需要先安装 Node.js 和 Yarn。 1. **克隆仓库并安装依赖**: ```bash $ git clone https://github.com/hezhii/nodejs-sso-example.git $ cd nodejs-sso-example $ yarn install ``` 2. **启动服务** 启动服务前先修改本地的 hosts 文件,macOS 位于 `/private/etc/hosts`,windows 位于 `C:\Windows\System32\drivers\etc\hosts`。 在文件最后加上一行:`127.0.0.1 www.a.com www.b.com passport.com` 然后分别启动三个服务: ```bash $ cd passport $ node app.js $ cd ../system $ PORT=8081 SERVER_NAME=a node app.js $ PORT=8082 SERVER_NAME=b node app.js ``` 3. **测试** 打开浏览器访问 `www.a.com:8081`,发现会被重定向到 `passport.com`,输入用户名和密码后登录。 接着新开一个窗口访问 `www.b.com:8082`,发现不需要登录直接可以访问。