2017-03-10 4 views
1

React 단일 페이지 앱 및 Ruby on Rails API와 함께 Auth0 잠금을 사용하여 인증을 설정하려고합니다.auth0 Rails API에 대한 토큰이 유효하지 않습니다.

import React from 'react'; 
import Auth0Lock from 'auth0-lock'; 

var Login = React.createClass({ 
    componentWillMount: function() { 
     this.lock = new Auth0Lock('*************', '****.eu.auth0.com', { 
     allowedConnections: ['facebook'] 
     }); 
     this.lock.on('authenticated', this._doAuthentication.bind(this)); 
    }, 
    showLock: function() { 
    this.lock.show(); 
    }, 
    _doAuthentication(authResult) { 
    console.log('Bearer '+authResult.idToken); 
    var request = require("request"); 

    var options = { method: 'POST', 
     url: 'http://localhost:3000/authenticate', 
     headers: { authorization: 'Bearer '+authResult.idToken } }; 

    request(options, function (error, response, body) { 
     if (error) throw new Error(error); 
     console.log(body); 
    }); 

    console.log(authResult); 
    this.setToken(authResult.idToken) 
    }, 

    login() { 
    this.lock.show() 
    }, 

    loggedIn() { 
    return !!this.getToken() 
    }, 

    setToken(idToken) { 
    localStorage.setItem('id_token', idToken) 
    }, 

    getToken() { 
    return localStorage.getItem('id_token') 
    }, 

    logout() { 
    localStorage.removeItem('id_token'); 
    }, 

    render: function() { 
    return (
    <div className="login-box"> 
     <button className="btn btn-success" onClick={this.showLock}>Sign In</button> 
    </div>); 
    } 
}); 

export default Login; 

이 코드는 Auth0 설명서에서 가져온 것입니다. 또한 Rails API에서 노크를 구성했습니다. 그래도 "Facebook을 통해 연결"버튼을 클릭하면 다음과 같이 표시됩니다. - 내 토큰이 생성되었습니다 (올바른 토큰입니다) - 올바른 인증 헤더와 함께 요청이 전송 됨 - 레일스는 401

을 반환합니다.

레일스가 "무기명 [MY TOKEN]"이라는 헤더를 받았지만 여전히 401이 나옵니다.

내가 뭔가를 놓쳤습니까? 다른 것이 필요합니까?

+0

이 요청을 처리하는 데 귀하의 레일 방법을 게시 할 수 있습니까? – Jeremie

+0

하나만 있지만 CSRF 일 수도 있습니다. protect_from_forgery가 여기에 충돌 할 수 있으므로 X-CSRF 토큰없이 POST를 수행하고 있습니다. – jethroo

답변

0

좋아, 마침내 발견 : 내 비밀은 6434 인코딩되지 않았기 때문에 내 knock.rb에 JWT.base64url_decode이 필요하지 않습니다. 나는 그것을 제거하고 실망했다.

관련 문제