2017-06-24 13 views
0

初めてのスタックオーバーフローのポスターここに!Firebase:認証トークンをパーズできません

私はAngular 4のチュートリアルに続き、Firebase(リンク:)の認証セクションを完成させています。私は正常にサインアップしてログインすることができましたが、ユーザーのトークンを「getIdToken」を介してGETリクエストに渡して、認証されたユーザーに特定のアクションを制限する際にエラーを受け取りました。私はまた、コードにコンソールからのトークンをコピーして貼り付けるとき

私が投稿したこの問題が発生する

* Response {_body: "{↵ "error" : "Could not parse auth token."↵}↵", status: 401, ok: false, statusText: "Unauthorized", headers: Headers…} 

私のGETリクエストに自分のトークンを渡し、私は次のエラーを取得しますデバッグ用以下(潜在的に)最も関連コード:

header.component.ts

onFetchData() { 
    this.dataStorageService.getRecipes(); 
    } 

データstorage.service.ts

getRecipes() { 

    const token = this.auth.getTokenGrabber() 

    this.http.get('https://recipes-fe1ba.firebaseio.com/.json?auth=' + token) 
     .map(
     (response: Response) => { 
      console.log(response.json()) 
      const recipes: Recipe[] = response.json(); 
      for (let recipe of recipes) { 
      if (!recipe['ingredients']) { 
       recipe['ingredients'] = []; 
      } 
      } 
      return recipes; 
     } 
    ) 
     .subscribe(
     (recipes: Recipe[]) => { 
      this.recipeService.setRecipes(recipes); 
     } 
    ); 
    } 

authentication.service.ts

signinUser(email, password){ 

    firebase.auth().signInWithEmailAndPassword(email, password) 
     .then(
     (response) => { 
       firebase.auth().currentUser.getIdToken(
       ).then(
        (token:string) => { 
        // console.log(token) 
        this.token = token 
        console.log('user was found') 
        // console.log(this.token) 
        } 
       ) 
     } 
    ).catch((erorr) => { 
     console.log('user was not found')  
     } 
    ) 
    } 

    getTokenGrabber(){ 
      firebase.auth().currentUser.getIdToken() 
       .then(
        (token:string) => 

        this.token = token 
       ) 
       return this.token 
     } 
} 

答えて

0

REST API documentationは、クエリパラメータがaccess_token、ないauthであることを示します。試してみてください:

this.http.get('https://recipes-fe1ba.firebaseio.com/.json?access_token=' + token) 
関連する問題