2016-07-19 1 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); 

에서 그리고 아이폰 OS에서 지정된 인증 및 경로 선언 - 서버에서

: 여기에 내 코드의 일부입니다

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 측에서는 응답으로 다음과 같은 오류가 발생합니다. Domain = com.alamofire.error.serialization.response Code = -1011 "Request failed : unauthorized (401)" – cweber105

+0

어떤 토큰을 보내고 있습니까? 'access_token'이 아니라'id_token'인지 확인하십시오 (후자는 JWT가 아닙니다). –

답변

3

이 문제는 내가 키 체인에서 당겨 후 토큰을 푸는 데 실패 다만이었다. Authorization 헤더에 "Bearer [token]"을 보내는 대신 "Bearer [Optional (token)]"을 보냈습니다.