我有一个Spring后端和一个Angular前端。我正在尝试完成在Angular中创建登录名。使用邮递员,我可以获得jwt和登录名,并且所有路由都可以工作。在登录时,可以用斜角在JWt响应头中看到。我的问题是如何获取它并将其存储在localStorage或其他任何东西上?我的响应标头如下所示:https://ibb.co/RgrGznR
在尝试了很多不同的东西之后,我的代码此刻有些混乱。我可能在某个时候已经很接近了,而沮丧的是,我又回到了非常基本的东西,至少给了我Status 200和响应头中的jwt。
这是我的服务班级:
export class DataService {
httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json'})
};
constructor(private http: HttpClient) {
}
public login(username: string, password: string) {
return this.http.post<any>('http://localhost:8080/login', {username,
password});
}
和登录组件:
export class LoginComponent implements OnInit {
loginForm: FormGroup;
invalidLogin = false;
constructor(private router: Router, private service: DataService) { }
ngOnInit() {
this.loginForm = new FormGroup({
username: new FormControl(''),
password: new FormControl('')
});
}
doLogin() {
const username = this.loginForm.get('username').value;
const password = this.loginForm.get('password').value;
this.service.login(username, password).subscribe(
data => {
}
);
}
}
对不起,我可能已经阅读了我需要做的事情,只是没有正确地实现它。.我对Java的后端非常满意。.但是我并没有真正弄乱角度太大。预先谢谢你。
答案 0 :(得分:1)
在您的DataService中,获得访问标头的完整响应:
$"{Assembly.GetExecutingAssembly().GetName().Name}.{nameof(Level1Namespace)}.{nameof(Level2Namespace)}"
您可以在此处保存令牌,并在后续请求时将其添加到标头中。