2017-03-10 11 views
1

私はAuth0ロックを使ってReactシングルページアプリとRuby on Rails APIを設定しようとしています。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経由で接続」ボタンをクリックすると、次のようなメッセージが表示されます。 - トークンが生成されました(有効なトークンです) - 正しい認証ヘッダーを使用してリクエストが送信されました。 - Railsは401を返します

私はRailsがヘッダを "Bearer [MY TOKEN]"として受信したことを確認しましたが、まだ401を取得しています。

私は何かを見逃しましたか?他に必要なことはありますか?

+0

このリクエストの処理を担当するレールメソッドを投稿できますか? – Jeremie

+0

ここで唯一の問題ではないかもしれませんが、CSRFでもかまいません。あなたはX-CSRFトークンなしでPOSTを実行しているので、protect_from_forgeryがここに衝突する可能性があります – jethroo

答えて

0

最後にわかったのは、私の秘密が64ビットコード化されていなかったことです。つまり、knock.rbのJWT.base64url_decodeは必要ありませんでした。私はそれを取り除き、うんざりした。

関連する問題