如何将WordPress站点的用户认证信息传递到ASP.NET后端API
完全可以复用WordPress的身份认证与授权能力,无需二次登录或同步认证信息
核心逻辑是利用WordPress原生的登录态校验规则,在ASP.NET侧做验证即可,具体实现如下:
实现步骤
- 首先确认部署配置:如果ASP.NET API和WordPress主站属于同根域名,前端Vue发请求时会自动携带WordPress的登录Cookie;如果是跨域名部署,给Vue的请求配置
withCredentials: true,同时在ASP.NET侧配置CORS规则,允许前端所在域名访问、允许携带凭证即可。 - 其次在ASP.NET侧实现WordPress登录态校验:
- 先从WordPress站点根目录的
wp-config.php文件中获取LOGGED_IN_KEY、LOGGED_IN_SALT两个常量值,这是WordPress生成登录态签名的固定密钥 - WordPress的登录态存储在名称为
wordpress_logged_in_*的Cookie中,格式为用户名|过期时间戳|HMAC签名,你只需要在ASP.NET中按照WordPress官方的签名生成规则,用拿到的密钥重新计算签名,和Cookie携带的签名做比对,比对一致就说明认证有效,同时可以直接从Cookie中提取用户名、用户ID做后续授权判断。
- 先从WordPress站点根目录的
- 最后给ASP.NET API添加全局认证中间件:所有请求先经过上述校验逻辑,校验不通过直接返回401状态码,即可解决API公网无防护可随意访问的问题。
低成本简化方案
如果不想自行研究WordPress的签名规则,可以用代理校验的方案:
- 在WordPress侧新增一个仅允许ASP.NET服务器IP访问的内部校验接口,接口逻辑为校验请求携带的Cookie是否有效,返回对应用户的ID、角色、权限等信息。
- ASP.NET侧收到前端请求后,将前端携带的Cookie转发到这个内部接口做校验,校验通过再执行业务逻辑即可,开发成本更低,适合中小流量场景。
授权能力复用
校验通过拿到用户ID后,你可以直接调用WordPress原生REST API或者自行实现的轻量接口,查询对应用户的角色、权限、购买状态等信息,直接用来做ASP.NET侧的接口权限判断,完全复用WordPress的权限体系。
内容的提问来源于stack exchange,提问作者TeeDeL
相关产品推荐
相关产品推荐

