在我的Angular2应用程序中,我想使用Auth0获取委托令牌,以便我可以使用它来自定义登录firebase。我按照示例here来设置我的Auth0服务并使其正常工作。
我现在遇到的问题是获取我的代表团令牌并使用它登录Firebase。示例here显示了它是如何完成的,但是我得到了一个EXCEPTION:当我尝试声明我的auth0实例并使用它来获取我的委托令牌时,无法读取未定义的属性'auth0'。我做错了什么?
在我的index.html中,我添加了以下脚本:
char*
我也尝试在终端上安装auth0:
<script src="http://cdn.auth0.com/js/lock/10.7/lock.min.js"></script>
<script src="https://cdn.auth0.com/w2/auth0-7.4.min.js"></script>
我的身份验证服务目前看起来像这样:
npm install auth0
npm install auth0-js
答案 0 :(得分:1)
您还需要创建auth0
实例here
var auth0 = new Auth0({ domain : AUTH0_DOMAIN, clientID: AUTH0_CLIENT_ID });
答案 1 :(得分:1)
我找到了解决此问题的方法。我坚持这个完全相同的问题,我认为它与typscript导入auth0模块有关。我没有使用auth0模块,只是向我的Auth0帐户的委托端点发出HTTP POST请求:
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
this.http.post('https://<Your domain>/delegation',
{
"client_id": "<Your client ID>",
"grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
"id_token": <Your auth0 Id Token>,
"target": "Your client ID",
"scope": "openid",
"api_type": "<Your delegation choice (mine was "aws")>",
}, options)
.map((res:Response) => res.json())
.subscribe(
data => localStorage.setItem('awsToken', JSON.stringify(data.Credentials)),
err => console.log(err),
() => console.log('Authentication Complete')
);
这会将获取的凭据存储在浏览器的本地存储中。注意:Firebase可能需要一些其他参数,我不知道,因为我正在使用AWS。此HTTP请求还需要以下导入:
import { Http, Response, Headers,RequestOptions } from "@angular/http";
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map';