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이 나옵니다.
내가 뭔가를 놓쳤습니까? 다른 것이 필요합니까?
이 요청을 처리하는 데 귀하의 레일 방법을 게시 할 수 있습니까? – Jeremie
하나만 있지만 CSRF 일 수도 있습니다. protect_from_forgery가 여기에 충돌 할 수 있으므로 X-CSRF 토큰없이 POST를 수행하고 있습니다. – jethroo