You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel应用与NodeJS API间单点登录(SSO)实现方案咨询

跨应用自动登录的可行方案

针对你的场景(Laravel单体应用 + NodeJS API + Vue前端独立应用),以下是几个实用的实现方式:

1. JWT跨域身份验证

  • 核心逻辑:利用Laravel生成的JWT作为跨应用身份凭证,Vue前端先验证Laravel登录状态,再用JWT访问NodeJS API
  • 实现步骤:
    1. Laravel端配置JWT(可使用tymon/jwt-auth扩展),新增接口接收Vue前端请求(携带Laravel登录Cookie),验证用户已登录后返回签名JWT。
    2. Vue前端初始化时,先请求该Laravel接口:若用户已登录Laravel,即可获取JWT并存储在localStorage/sessionStorage中。
    3. 后续Vue请求NodeJS API时,在请求头携带Authorization: Bearer {JWT}。
    4. NodeJS API使用jsonwebtoken库验证JWT有效性(与Laravel共用密钥),验证通过则视为用户已登录,返回对应数据。
  • 注意事项:
    • 配置Laravel的CORS规则允许Vue域名跨域请求,同时将Cookie设置为SameSite=None和Secure(仅HTTPS环境),确保跨域可携带Cookie。
    • 合理设置JWT过期时间,可配合刷新令牌机制避免频繁重新验证。

2. 共享Redis Session

  • 核心逻辑:让Laravel和NodeJS共用Redis存储Session,通过Session ID跨应用验证用户身份
  • 实现步骤:
    1. 将Laravel的Session驱动改为Redis,配置好Redis连接信息。
    2. NodeJS API连接同一Redis实例,按照Laravel的Session键名规则(默认laravel_session:{session_id})读取Session数据。
    3. Vue前端访问时,先向Laravel请求获取Session ID(或直接读取Cookie中的laravel_session值),传给NodeJS API。
    4. NodeJS API通过Session ID从Redis取出Laravel Session数据,验证用户登录状态,通过后生成本地登录凭证(如JWT或本地Session)返回给Vue。
  • 注意事项:
    • 确保Laravel与NodeJS的Redis连接配置一致,包括前缀、数据库编号等。
    • 同样需处理跨域Cookie携带问题,参考JWT方案的CORS配置。

3. OAuth2授权码模式(推荐)

  • 核心逻辑:将Laravel作为OAuth2服务端,NodeJS API作为客户端,通过标准授权流程实现自动登录
  • 实现步骤:
    1. Laravel端用Laravel Passport搭建OAuth2服务端,创建NodeJS API对应的客户端,获取客户端ID和密钥。
    2. Vue前端初始化时跳转到Laravel授权页面(因用户已登录Laravel,会自动完成授权),授权后Laravel返回授权码给Vue。
    3. Vue将授权码传给NodeJS API,NodeJS API用授权码向Laravel请求访问令牌(Access Token)。
    4. NodeJS API拿到令牌后,调用Laravel用户信息接口获取用户数据,再为Vue生成本地登录会话(如设置Cookie或返回JWT)。
  • 注意事项:
    • 该方式符合行业标准,安全性高,适合后续扩展多应用场景。
    • 需配置Laravel Passport的回调地址为NodeJS API的对应接口,确保授权流程正常。

4. 同域名下的Cookie共享

  • 核心逻辑:若两个应用共享主域名(如app1.yourdomain.com和app2.yourdomain.com),通过共享Cookie实现自动登录
  • 实现步骤:
    1. Laravel的登录Cookie设置domain=.yourdomain.com,让所有子域名可访问该Cookie。
    2. Vue前端访问时自动携带Laravel登录Cookie,向NodeJS API发送请求。
    3. NodeJS API拿着该Cookie请求Laravel验证接口,确认用户已登录后创建本地登录会话。
  • 注意事项:
    • 仅适用于共享主域名场景,且必须使用HTTPS协议,同时设置Cookie的Secure属性,防范CSRF风险。

内容的提问来源于stack exchange,提问作者Tharindu Thisarasinghe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:10:20