对于后端,我使用Spring Framework和'Shiro'进行身份验证,
对于前端,我使用的是Angular 5.
如果我从postman调用我的登录API,那么在我使用logout API之前,我将获得相同的用户会话.(哪个是对的)
但是当我从我的角度5调用我的登录API时,我在每次调用时都会得到不同的用户会话.(这是错的.)
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class LoginService {
private headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded'});
private _url:string = "v1/login";
constructor(private http: HttpClient) { }
login(){
const data = {userName:"root", password:"root"};
return this.http.post(this._url,{headers: this.headers},{params : data})
.subscribe(data => {sessionStorage.setItem("jsessionid",JSON.parse(JSON.stringify(data)).jsessionid)});
}
}
Run Code Online (Sandbox Code Playgroud)
每次调用'jsessionid'都会改变,如''所示
会话管理将自动进行。
如果我们当时在一台服务器上有客户端,在另一台服务器上有后端,我们只需要添加“proxy.conf.json”文件。并且需要在“package.json”文件中添加该文件条目。
重要提示:- 将服务器 URL 添加到“proxy.conf.json”中的端口号。(服务器 URL 输入到端口号)
{
"/": {
"target": "https://localhost:30443",
"secure": false
}
}
Run Code Online (Sandbox Code Playgroud)
就我而言,我/mainlayer在服务器 URL 中使用了一个额外参数。(这是错误的。)
{
"/": {
"target": "https://localhost:30443/mainlayer",
"secure": false
}
}
Run Code Online (Sandbox Code Playgroud)
在LoginService课堂上只需添加额外的参数即可。
private _url:string = "mainlayer/v1/login";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21541 次 |
| 最近记录: |