質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

1回答

325閲覧

node.js jwtトークン作成コードについて

kazoogon

総合スコア281

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2018/08/27 21:32

今していること

node.js expressを使用しlogin機能の実装、jwtトークンの作成

参考にしたコード

jwt.sign(payload, keys.secretOrKey, { expiresIn: 3600 }, (err, token) => { res.json({ success: true, token: 'Bearer ' + token }) });

こう実装されていたのですが、どのようにして引数にtokenの値が渡されているのかが不明です。
どこかで変数宣言しているならわかるのですが。。。

宜しくお願い致します。
(ちなみにpostmanで確認したところ、tokenは作成されておりました)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

どのようにして引数にtokenの値が渡されているのかが不明です。

変数宣言はありませんが、関数の引数宣言はあります。
(err, token) => {}はアロー関数というES2015のバージョンで追加された関数の簡易的な書き方です。

JavaScriptはネット通信やハードディスクの読み書き等の遅い処理を待たずに、
処理が終わった後に行いたい事を関数としてまとめて、
書き置きとして引数に渡してやる設計になっています。

それを実現させる為にJavaScriptの関数は「変数に代入できる」「関数の引数として設定できる」「関数の戻り値として設定できる」などの特徴があり、数値や文字列等と殆ど同じように扱えます。
関数が入っている変数や引数は、お尻に()を付ければ誰が何処で実行しても構いません。

jwt.signは最後の引数に関数を要求する非同期な設計であり、
実際に通信を行い、通信終了後に最終引数で受け取った関数に対してお尻に()を付けて実行しています。
その時、通信の成功・失敗を第一引数に、トークン情報を第二引数に設定して関数実行してくれる作りになっていると想定されます。

投稿2018/08/28 01:43

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問