【发布时间】:2019-04-25 17:09:06
【问题描述】:
我在 localhost:3000 上有一个 Rails BE 应用程序,在 localhost:4200 上有一个 FE。我试图让令牌验证自动完成,我知道这是通过在 _tokenService.validateToken() 方法期间设置和检索 localStorage 发生的。
问题似乎是,一旦我(成功)登录,我在浏览器中查看了我的 localStorage,发现没有任何保存。因此,当我刷新页面时,没有 localStorage 作为我的 validateToken() 方法的一部分进行验证,因此会话不会在浏览器上维护。
我在这里缺少什么?我初始化此命令的方式有错误吗?每次都需要手动设置localStorage吗?如果是这样,怎么做?
app.component.ts
import { Component, ViewEncapsulation, OnInit } from '@angular/core';
import { Angular2TokenService } from 'angular2-token';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class AppComponent {
constructor(private _tokenService: Angular2TokenService) {
this._tokenService.init({apiBase:'http://localhost:3000'});
}
}
登录.component.ts
import { Component, OnInit } from '@angular/core';
import { Angular2TokenService, SignInData } from 'angular2-token';
@Component({
selector: 'sign-in',
templateUrl: 'sign-in.component.html'
})
export class SignInComponent {
private _signInData: SignInData = <SignInData>{};
private _output: any;
constructor(private _tokenService: Angular2TokenService) { }
// Submit Data to Backend
onSubmit() {
this._output = null;
this._tokenService.signIn(this._signInData).subscribe(
res => {
this._signInData = <SignInData>{};
this._output = res;
}, error => {
this._signInData = <SignInData>{};
this._output = error;
}
);
}
}
【问题讨论】:
标签: angular devise local-storage