get5loader icon indicating copy to clipboard operation
get5loader copied to clipboard

[API] Support JWT auth for API

Open FlowingSPDG opened this issue 5 years ago • 7 comments

Using session is not good way to use api for developers imo, so support API key to use API

FlowingSPDG avatar Jan 05 '20 19:01 FlowingSPDG

JWTでトークンを発行する形式に切り替え、通常のログインもJWTを使用するのが良さげ?

FlowingSPDG avatar Mar 04 '20 05:03 FlowingSPDG

JWTは導入しセッションを廃止した リロードするとログアウトされるので、そこは何か対策が必要...? localStorageに保存しても良いかもしれない 通常のマッチリストロードにもログインが必要なので、tokenなしでロード出来るようにしたいリソースはエンドポイントグループを分ける

トークン不要系はGET, POST系はトークン必要にしたい [GET] /api/v1/GetNNN [GET] /api/v1/matchlist [GET] /api/v1/match/{matchID}/ [GET] /api/v1/team/{matchID}/

https://github.com/FlowingSPDG/get5-web-go/tree/feat/jwt-auth

FlowingSPDG avatar Mar 04 '20 15:03 FlowingSPDG

JWTのキーがAPIキーとしても作動するように

FlowingSPDG avatar Mar 04 '20 15:03 FlowingSPDG

・JWTなしでロードできるようにAPIを分ける ・JWTをフロントエンドで保存できるようにする

FlowingSPDG avatar Mar 31 '20 18:03 FlowingSPDG

変更事項 /api/v1/ はv1 APIとして残す。セッション JWT認証のAPIは /api/v2/ として新規に作成してパスも分ける。 JWTはlocalStorageに保存されるように。

FlowingSPDG avatar Apr 24 '20 01:04 FlowingSPDG

パスは分けないで済みそう(エンドポイントごとに仕込めたので) このさきv1/v2 APIをそれぞれパッケージで分けて処理を分割する(jwtの認証処理など必要) あと、ユーザーが安全にSteamにログインしてjwtを取得する方法を考えたい(クエリで渡すのはあまりにも危険) https://github.com/FlowingSPDG/get5-web-go/blob/feat/jwt-auth/server/src/api/api.go#L86-L89

FlowingSPDG avatar Apr 29 '20 02:04 FlowingSPDG

クエリで渡してもオンラインにリクエストが飛ぶわけではないので一先ず安全 あとはV2 APIをjwtベースのものに書き換えればOK

FlowingSPDG avatar Apr 29 '20 19:04 FlowingSPDG