2016-12-18 4 views
3

私はangle2アプリケーションでangular-cliを足場やその他のタスクに使用していますが、今はangle2アプリケーションでjsonwebtokenを使用できません。jsonwebtokenをangi-cliアプリケーションで使用するとエラーが発生する

私は、依存関係

yarn add --save jsonwebtoken

を追加していると私は実際にnode_modulesでライブラリを参照することができ、私は私の活字体のコードとIDEに

import { jwt } from 'jsonwebtoken'

を行うことはありません私に与えますそれについて警告するので、依存関係を正しく見つけることができます。

しかし、私はnpm startまたはyarn startを行うとき、私は、私はインターネット上でエラーを探したときに、私は会話や関連プロジェクトのセリエ続く次のエラーメッセージ

ERROR in ./~/isemail/lib/index.js 
Module not found: Error: Can't resolve 'dns' in '/home/$MY_USER_NAME_PLACE_HOLDER/dir/to/my/app/node_modules/isemail/lib' 
@ ./~/isemail/lib/index.js 5:12-26 
@ ./~/joi/lib/string.js 
@ ./~/joi/lib/index.js 
@ ./~/jsonwebtoken/sign.js 
@ ./~/jsonwebtoken/index.js 
@ ./src/app/_auth/authentication.service.ts 
@ ./src/app/app.component.ts 
@ ./src/app/index.ts 
@ ./src/main.ts 
@ multi main 

ERROR in [default] /home/$MY_USER_NAME_PLACE_HOLDER/dir/to/my/appsrc/app/_auth/authentication.service.ts:41:24 
Property 'validate' does not exist on type 'typeof "/home/$MY_USER_NAME_PLACE_HOLDER/dir/to/my/app/node_modules/@types/jsonwebtoken/index"'. 

を持っています。そこ同様の問題はありませんが、全くそうdetailed、それが答えていない

  • : そして、私はことがわかりました。 react-validation-mixinisemailjoi

  • いくつかの関連のエラーは、彼らがノードからdnsnetまたは他のいくつかのネイティブモジュールに依存し、私はいくつかあると思いますライブラリのインポートを実行する同様の問題を記述する場合、このoneに私を導きます問題webpackで独占的にライブラリのこの種を使用するときに(私はそれを確認するための専門知識全くない私が間違っている場合は、修正してください)と回避策はwebpack.config

    node: { 
        net: 'empty', 
        tls: 'empty', 
        dns: 'empty' 
    } 
    
01に次の行を追加することです

しかし私の問題は、角度のある壁にはno way to override webpack configがあり、それを変更するつもりはありません。

私はここで何をすべきか分かりません。角度のあるアプリケーションでjsonwebtokenを使用するにはどうすればいいですか?

答えて

1

jsonwebtokenクライアント側(jsonwebtokenは私のExpressアプリケーションではちょうど良いサーバー側で動作します)を使用しようとすると、同じ問題が発生しました。

短い答えは、角度アプリでhttps://github.com/Hendrixer/jwt-decode jsonwebtokeを使用することができないことです。バリデーションのようなことをするためにJWTのクライアントサイドをデコードするだけであれば、ライブラリは少し重いです。モジュールは実際にはnode.jsのサーバサイドでの使用を意図しています。

ただし、角度2のクライアント側(角度-cli、webpackを含む)でDOが使用できる代替手段がいくつかあります。たとえば、Jwt-decodeはJWTをデコードします。

しかし、最良の代替手段は、Angular2-JWTのAuthHttpクラスを使用して自分のコードをリファクタリングして、httpヘッダーにトークンを渡すことでした。また、トークンが存在しないか、検証が合格しない場合は、エラーをスローします。これは、好きなように処理できます。

関連する問題