这些变化中最显著的是:
我不明白这是如何改变事情的,但它起作用了!
import { AuthConfig, AuthHttp } from 'angular2-jwt';
import { NgModule } from '@angular/core';
import { HttpModule, Http, RequestOptions } from '@angular/http';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule, routingComponents } from './app.routing';
import { AppComponent } from './Components/app.component';
@NgModule({
imports: [BrowserModule, HttpModule, AppRoutingModule],
declarations: [AppComponent, routingComponents],
bootstrap: [AppComponent],
providers: [
{
provide: AuthHttp,
useFactory: (http: Http, options: RequestOptions) => new AuthHttp(new AuthConfig(), http, options),
deps: [Http, RequestOptions]
}]
})
export class AppModule { }
import { Component } from '@angular/core';
import { AuthHttp } from 'angular2-jwt';
@Component({
selector: "app",
templateUrl: "/App/Components/app.component.html"
})
export class AppComponent
{
constructor(service: AuthHttp)
{ }
}
我发现这个资源说我需要阅读更多关于DI的信息,但从我的角度来看一切都很好。https://github.com/auth0/angular2-jwt/issues/88
如果将AppComponent
构造函数更改为调用new AuthConfig()
,它将在transpiled js文件中生成new Angular2_jwt_1.AuthConfig()
(此错误说明构造函数不存在)。但是,如果在js文件中手动将其更改为new Angular2_jwt_1.default.authconfig()
,则会正确创建实例。这可能与病因有关吗?
我找不到出现这个问题的确切原因,但很可能是基于配置的。我所做的工作是不使用angular2-jwt库,而是将承载令牌手动添加到本angular2 jwt身份验证文章的请求库中。
以下是如何获得承载令牌。
public Login(username: string, password: string): Observable<boolean>
{
// Prepare post headers
var headers: Headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
// Prepare credential request
var body: string = "grant_type=password&scope=scopes go here&username=" + username + "&password=" + password;
return this.http
.post("token url here", body, { headers: headers })
.map((response: Response) =>
{
let token = response.json();
token = token && token.access_token;
if (!token)
return false;
else
{
localStorage.setItem('username', username);
localStorage.setItem('token', token);
return true;
}
});
}
以下是如何发出经过身份验证的请求(Token属性从localStorage获取当前令牌)。
public Post<T>(url: string, body: string): Observable<T>
{
let headers = new Headers({ 'Authorization': 'Bearer ' + this.Token });
let options = new RequestOptions({ headers: headers });
return this.http
.post(url, body)
.map((response: Response) => response.json());
}
问题内容: 我有一个通用的抽象模板类。我以为如果创建特定于类型的生产者,则可以直接在通用类中注入一些DAO服务。但是我不能。 为什么?我该如何解决? 当我注入一个例如它完美地工作。但是没有泛型… 问题答案: 当您要求 容器知道您要一个类型为的bean 。如果存在这样的bean并且其类型信息已知,则容器可以满足注入。例如,类型信息保留在带注释的方法中 容器使用反射来检索该参数化的类型,并将其与请求的
问题内容: 为什么只有知道文件的inode却不搜索链接到该inode的文件却无法访问文件?到文件的硬链接只包含名称和数字,告诉您在哪里可以找到有关该文件的所有 真实 信息的索引节点。当我被告知没有用户模式直接使用inode编号打开文件时,我感到很惊讶。 对于系统而言,这似乎是一种无害且有用的功能。为什么不提供? 问题答案: 某些操作系统 确实 具有该功能。例如,OS X需要它来支持Carbon F
问题内容: 我有 一切都正确加载。 然后在我的JavaScript中,我尝试注入ngCookies: 但是它似乎找不到$ cookies: 问题答案: 我不确定您的功能用例是什么,但是您不能在配置块中注入服务(即服务)。仅常量和提供程序可以注入配置块内。 您可以将服务注入运行块,但我不知道这是否对您有帮助,因为我不确定您打算如何处理这些cookie。 顺便说一句:您似乎在混合主角度文件和模块的版本
@auth0/angular-jwt NOTE: This library is now at version 5 and is published on npm as @auth0/angular-jwt. If you're looking for the pre-v1.0 version of this library, it can be found in the pre-v1.0 bra
我一直在使用令牌进行身份验证。然而,我不明白令牌(JWT)与cookie有何不同。两者都将存储用户信息(作为令牌中的声明),定义持久性,并将与每个客户端请求一起发送到服务器。 除了上面提到的几个问题- 谢谢