APIプラットフォームとJWT認証を使ってSymfony4でユーザー管理する方法

APIプラットフォームとJWT認証を使ってSymfony4でユーザー管理する方法を調べたのでその備忘録です。

まだAPIプラットフォームのすべてを理解していないので誤りがありましたらご了承下さい。

各種パッケージのインストール

以下のパッケージをcomposerでインストールして下さい。

JWT認証の設定

JWT認証の設定は公式マニュアルをご確認下さい。

https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Resources/doc/index.md#installation

Userエンティティ作成

以下のコマンドでUserエンティティを作成して下さい。

Userエンティティが出来たら以下のように修正して下さい。

@ApiResourceを指定することでユーザーのREST APIが利用できるようになります。

@ApiResourceではアクセス権限、読み込み・書き込み権限などを設定しています。

セキュリティ設定

以下のようにセキュリティ設定をして下さい。

認証URLのパス設定

/authentication_tokenで認証処理を行うので以下のようにroutes.yamlにパスを設定して下さい。

ユーザー登録時にパスワードをハッシュ化して保存

ユーザー登録時にパスワードをハッシュ化して保存するために以下のようにEventSubscriberを用意して下さい。

以上で完成です。

APIの使い方

ユーザー登録

ログイン

認証に成功すると以下のようなトークンが帰ってきます。

ユーザー情報取得

ユーザー情報更新

ユーザー情報削除

 

APIの結果確認にはPostmanが便利です。

ユーザー情報が取得できない場合

JWT Token not foundとなりユーザー情報が取得できない場合は.htaccessに以下を追加してみて下さい。

 

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください