首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自使用angular2-jwt的WebApi中间件的IdentityServer BearerAuthentication

来自使用angular2-jwt的WebApi中间件的IdentityServer BearerAuthentication
EN

Stack Overflow用户
提问于 2017-02-21 17:11:46
回答 1查看 241关注 0票数 0

在将我的项目更新到angular 2 final之后,我在使用IdentityServer3和angular2-jwt时遇到了一个WebApi2授权的问题。在一切正常之前,在angular2-jwt配置中,headername是空的,token-getter-method只返回token。

更新空的headername后,导致javascript错误:

代码语言:javascript
复制
 EXCEPTION: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': '' is not a valid HTTP header field name.
EN

回答 1

Stack Overflow用户

发布于 2017-02-21 17:11:46

因此,首先我必须提供一个头名称,在我的root-module angular2-jwt配置中如下所示:

代码语言:javascript
复制
        provideAuth({
        headerName: 'BearerToken',
        headerPrefix: '',
        tokenName: '',
        tokenGetter: () => {
            return JSON.parse(localStorage.getItem('bearerToken'));
        },
        globalHeaders: [{'Content-Type': 'application/json'}],
        noJwtError: true,
        noTokenScheme: true
    })

还是不能工作。经过一些研究,我发现头名称应该是“授权”,而tokenName应该是“持有者”。好的,让我们这样试一下:

代码语言:javascript
复制
provideAuth({
        headerName: 'Authorization',
        headerPrefix: '',
        tokenName: 'Bearer',
        tokenGetter: () => {
            return JSON.parse(localStorage.getItem('bearerToken'));
        },
        globalHeaders: [{'Content-Type': 'application/json'}],
        noJwtError: true,
        noTokenScheme: true
    })

尽管如此,我的带有Authorize-Tag的ControllerMethod仍然没有到达。好的,最后一次尝试,当我手动添加‘持有者’时,可能会起作用:

代码语言:javascript
复制
        provideAuth({
        headerName: 'Authorization',
        headerPrefix: '',
        tokenName: 'Bearer',
        tokenGetter: () => {
            var token: string = JSON.parse(localStorage.getItem('bearerToken'));
            return 'Bearer ' + token;                
        },
        globalHeaders: [{'Content-Type': 'application/json'}],
        noJwtError: true,
        noTokenScheme: true
    })

还有..。轰炸机惊喜。它起作用了;)再多玩一点,我发现tokenName可以是空的,也可以包含其他任何东西。

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

https://stackoverflow.com/questions/42363037

复制
相关文章

相似问题

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