2016-07-19 9 views
2

私は、node.jsとexpress.js上に構築されたサーバーを持つiOSアプリケーション用にAuth0のサービスを使用しています。私は可能な限りAuth0のドキュメントとシードプロジェクトに従ってきましたが、サーバーはiOSアプリケーションから送信しているトークンが無効であると不満を持ち続けます。iOSからnode.jsサーバーにAuth0トークンが返されるのはなぜですか?

:(AFNetworkingを使用して)リクエストのヘッダーを設定し、 Auth0 documentation

var authenticate = jwt({ 
    secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'), 
    audience: process.env.AUTH0_CLIENT_ID 
}); 


app.use('/api', authenticate); 
app.use('/api/userquery', queries); 

とiOSからで指定された認証およびルート宣言、 -

サーバーから:ここに私のコードの一部です

request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") 

認証を必要としないパスで正常に動作するため、リクエストが正しく送信されていることが分かります。最後に、ここで私は、サーバー側で受信エラーがあります:

GET /api/userquery/currentUser 401 7.185 ms - 436 
UnauthorizedError: invalid token 
    at /node_modules/express-jwt/lib/index.js:100:22 
    at /node_modules/jsonwebtoken/index.js:155:18 
    at _combinedTickCallback (internal/process/next_tick.js:67:7) 
    at process._tickCallback (internal/process/next_tick.js:98:9) 
+0

サーバーからの応答を確認しましたか?トークンを含むURLおよび本文を含むオブジェクトである可能性があります。 –

+0

iOS側では、このエラーが発生しました。ドメイン= com.alamofire.error.serialization.responseコード= -1011「リクエストに失敗しました:不正(401)」 – cweber105

+0

送信しているトークンは何ですか?それが 'access_token'ではなく' id_token'であることを確認します(後者はJWTではありません)。 –

答えて

3

問題は、私はキーチェーンからそれを引いた後、トークンをアンラップするために失敗したことだけでした。 Authorizationヘッダーに "Bearer [token]"を送信する代わりに、 "Bearer [Optional(token)]"を送信していました。

関連する問題