无法使用Auth0获取委托令牌

时间:2016-12-28 17:38:24

标签: authentication angular auth0

在我的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

2 个答案:

答案 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';