2013-03-01 2 views
0

Firebase REST API (전체 소스는 https://github.com/cloudfuji/taika 참조) 주위에 래퍼를 작성하려고 시도하면 인증 토큰이 실패한 것 같습니다. (물론, 예를 비밀 키)"오류": "invalid_token : 인증 토큰을 구문 분석하지 못했습니다." Clojure에서 Firebase 용 JWT를 생성 할 때

(ns taika.auth 
    (:require [clojure.string :as string] 
      [clj-http.client :as client] 
      [cheshire.core :as json]) 
    (:import [com.firebase.firebase-token-generator.security.token] 
      [org.json.JSONOBject])) 

(defn token-generator [secret-key] 
    (com.firebase.security.token.TokenGenerator. secret-key)) 

(defn create-token [token-generator auth-data & [admin?]] 
    (let [token-options (doto (com.firebase.security.token.TokenOptions.) 
         (.setAdmin (or admin? false)))] 
    (.createToken token-generator (org.json.JSONObject. auth-data) token-options))) 

토큰, 합리적인 외모 생성 : 함수는 코드는 간단합니다 중포 기지에서 제공하는 자바 라이브러리 옵션 (https://github.com/firebase/firebase-token-generator-java)

주위에 간단한 래퍼입니다

(let [tg (token-generator "abc123") 
        auth-data {:email "[email protected]" :api_key "my-api-key"} 
        admin? false] 
       (create-token tg auth-data admin?)) 

=> "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2IjowLCJpYXQiOjEzNjIxNjEzMDJ9.8701406fad76b2dff83bf38a18d91a95ed7787f255e7dd534a77e7daa0c58c59" 

그러나 REST API 요청에 토큰을 사용하는 경우, 그것은 실패 :

{ "error" : "invalid_token: Could not parse auth token." } 

ruby ​​라이브러리에 같은 문제가없는 것 같습니다.

다시, 전체 소스 소스는 https://github.com/cloudfuji/taika/blob/master/src/taika/auth.clj

답변

관련 문제