首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >localStorage中的JWT只有在刷新页面后才能工作

localStorage中的JWT只有在刷新页面后才能工作
EN

Stack Overflow用户
提问于 2016-11-20 12:29:20
回答 1查看 1.1K关注 0票数 0

因此,我正在开发一个angular2应用程序,并试图在登录后生成一个JWT,以便可以获得用户的配置文件信息。我可以成功登录,这就是我生成令牌的时候。登录后,我将用户路由到配置文件页面,在那里我调用api来获取用户信息。所有这些只在我登录并刷新页面后才起作用。

代码语言:javascript
复制
this.auth_service
      .Login(this.email, this.password)
      .subscribe(
              data => {
                         this.global_events.change_nav_bar.emit(true)
                         console.log('logged in successfully: ' + data)
                         this.router.navigate(['/profile'])
                     })

//上面的auth_service调用此方法

代码语言:javascript
复制
Login(email, password): Observable<boolean>
    {
        return this.http
                    .post('/api/login', JSON.stringify({email: email, password: password}), this.Get_Headers('no_auth'))
                    .map(Handle_Response)

        function Handle_Response(response: Response)
        {
            let token = response.json() && response.json().token
            if(token)
            {
                this.token = token
                localStorage.setItem('current_user', JSON.stringify({ email: email, token: token }))
                return true
            }
            else
                return false
        }
    }

//然后在我的配置文件组件中执行此操作。我尝试过不同的超时时间。

代码语言:javascript
复制
ngOnInit(): void
    {
        this.global_events.change_nav_bar.emit(true)

        setTimeout(() => this.Get_User_Data(), 10000)
    }
EN

回答 1

Stack Overflow用户

发布于 2016-11-22 14:49:10

我通过直接从localStorage中拉出令牌,而不是在authenticationService中设置,解决了这个问题(并没有真正解决,但找到了另一个解决方案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40700721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档