首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角刷新令牌

角刷新令牌
EN

Stack Overflow用户
提问于 2018-11-02 06:10:15
回答 1查看 60关注 0票数 0

我正在尝试为我的Ionic应用程序实现RefreshToken功能。,但很明显,这个函数从来不执行.flatmap或.mergeMap。和我从本地存储中获得了旧的“令牌”和“refreshToken”。API使用以下格式。

代码语言:javascript
复制
  {
  "token": "string",
  "refreshToken": "string"
}

这是我的密码。

代码语言:javascript
复制
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).catch((errorResponse: HttpErrorResponse) => {
        debugger;
        console.log("Errr Response RefreshTokenInterceptor------", errorResponse);
        debugger;
        const error = (typeof errorResponse.error !== 'object') ? JSON.parse(errorResponse.error) : errorResponse;
        let reqRefData = {
            "token": this.token,
            "refreshToken": this.refresToken
        }

        if (errorResponse.status === 401 && error.error.error === 'Token-Expired') {
            const http = this.injector.get(HttpClient);
            debugger
            let url = Base_Url + 'user/refresh-token';
            console.log(Base_Url + 'user/refresh-token');
            debugger;
            return this.http.post<any>(url, reqRefData)
                // .flatMap(data => {
                .mergeMap(data => {
                    debugger;
                    console.log("!!!!!Flatmap Data ", data);
                    localStorage.setItem('my_token', data.token);
                    debugger;
                    const cloneRequest = request.clone({ setHeaders: { 'Authorization': `Bearer ${data.token}` } });
                    debugger;

                    return next.handle(cloneRequest);
                });
        }

        return Observable.throw(errorResponse);
    });

}}

我也尝试过使用.flatMap和.MergeMap。我在这里做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2018-11-02 10:09:16

您是否收到循环依赖项的错误消息?从HTTP拦截器内部发出HTTP请求可能会抛出它。

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

https://stackoverflow.com/questions/53113452

复制
相关文章

相似问题

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