1

フェザーズ js REST-APIアプリケーションでローカル認証を使用していますが、ユーザーが認証された後、認証トークンを送信する代わりに、フェザーは認証要求への応答として次の HTML を送信しています。

<body>
    <img class="logo" src="alongbase64string" alt="Feathers Logo">
    <main>
        <h1 class="center-text">Success</h1>
        <h3 class="center-text">You are now logged in. We've stored your JWT in a cookie with the name 
            <span class="italic">"feathers-jwt"</span> for you. It is:
        </h3>
        <pre id="token"></pre>
    </main>
    <script type="text/javascript">
function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}

var token = getCookie('feathers-jwt');

var el = document.getElementById('token');
el.innerHTML = token;
</script>

次のページを印刷します。

ここに画像の説明を入力

Web ページからリクエストを送信する場合はこれで十分だと思いますが、私の場合はトークンを取得する必要があります。これは、クライアントが Web ブラウザーではなくモバイル アプリであるため、Cookie が機能しないためです。 .

応答でフェザーズ js にトークンを送信させることは可能ですか? 何かのようなもの:

{
    token: 'açldkjfaçldkfjçasdkfjdçakfjd'
}

このようにして、トークンをモバイル アプリに保存し、それを使用して、feathersjs API サーバーへのさらなる要求を認証できます。

アプリケーションは完全にフェザーズ js で利用可能なコンソール コマンドで作成されているため、今のところこれ以上feathers generateのコードは記載しませんが、コードについてもっと理解する必要がある場合はお知らせください。詳細。

4

2 に答える 2

0

質問で参照されているソケット スキームの代わりに、ローカル ミドルウェアを使用します。

ログインデータを POST すると/auth/local

{
  "token": {JWT},
  "data": {
    "email": "admin@feathersjs.com",
    "id": 0
  }
}

クライアントは、その JSON 応答から値を取得して、適切に処理できます。

それを超えるほとんどのものは、ストックの Feathers デモを変更する必要があります。

于 2016-06-03T21:26:31.573 に答える