shiro nodejs 前后端分离

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ht_love_wy/article/details/88293702

环境如下:

1. nodejs服务:192.168.254.250:8080

2. Java服务:127.0.0.1,使用shiro进行登录管理

描述:在192.168.254.250:8080中去调用127.0.0.1登录及其他接口,重点在于nodejs在调用接口时把sessionid带上,被调用端允许跨域访问

前端:

在Ajax请求中加上这两项即可实现请求时带上相应的sessionid:crossDomain:true和xhrFields: {  withCredentials: true  },如下

后端注意两点:

1. 在自定义拦截器中设置header的Access-Control-Allow-Origin值为指定的域名(注意不能用通配符*),Access-Control-Allow-Credentials的值为true,如下

2. 在shiro中如果检查到是未登录状态会默认跳转到login.jsp,可通过配置loginUrl值指定访问路径,如

但上述拦截器中不能拦截到/api/login请求(有解决办法但不在此讨论),没法改变header,所以前端会出现跨域错误,因此我们可以不用loginUrl方式,改用返回状态码让前端自己实现页面跳转,配置如下:

ShiroUserFilter内容如下:

---------------------------------------------------------------------------------------------------------------------------------

至此,shiro + nodejs 前后端分离可实现登录

猜你喜欢

转载自blog.csdn.net/ht_love_wy/article/details/88293702