Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

パスワード再設定 新しいパスワード入力画面 #63

Open
mathsuky opened this issue Nov 10, 2024 · 12 comments · May be fixed by #91
Open

パスワード再設定 新しいパスワード入力画面 #63

mathsuky opened this issue Nov 10, 2024 · 12 comments · May be fixed by #91
Assignees

Comments

@mathsuky
Copy link
Collaborator

https://www.figma.com/design/r4TYukz0TtWkyasBVUXWFc/DesignSystem%2Fv0?node-id=1537-1132&node-type=frame&t=EBZaFamVrbpAcArA-0

@mathsuky
Copy link
Collaborator Author

mathsuky commented Dec 2, 2024

#63
#62
#61
まとめて

@ogu-kazemiya
Copy link
Collaborator

12/22までにやります
報告が遅れて申し訳ないです…!

@ogu-kazemiya
Copy link
Collaborator

APIをどのように呼ぶべきかと、正しく呼べたかを確認する方法がわからずに詰まっています…
とりあえず分からないなりに実装しましたが、たぶん間違っているので教えてほしいです🙏
ResetPasswordView.vue
ResetPasswordAfterMailView.vue

@ZOI-dayo
Copy link
Collaborator

実際に動かして確認はできていないのですが、APIの呼び出し方は合っていそうです!
モックサーバーは./scripts/run-mock-api.shで起動できます。
ただ、今の状態ではモックサーバーのURLが間違っていて繋がらないので、scripts/gen-api.shで生成されるsrc/generated/runtime.tsの16行目で、http://localhosthttp://localhost:4010に直して仮対応していただけると使えるようになります。(手を入れないと動かない状態で申し訳ないです。近い内に修正します)

@ogu-kazemiya
Copy link
Collaborator

ありがとうございます!mockサーバーに接続できてそうです

@ogu-kazemiya
Copy link
Collaborator

ResetPasswordFormView.vueを実装しようとしていたのですが、/reset-passwordについて、JWTが何かが調べてもあまり理解できませんでした…
どのように実装すべきか全く方針が立たないので教えていただきたいです🙏
相談遅くなってしまい申し訳ないです

@mathsuky
Copy link
Collaborator Author

mathsuky commented Dec 25, 2024

まずJWTについて超簡単に説明すると,使用されている署名アルゴリズムとトークンタイプ+共有したい情報+署名からなるものです。署名によりJWTが改竄されているかどうかを判定することができ,それゆえ正しい情報をやり取りすることができます。今回はフロントからサーバーへopenapiyamlで定義されるような情報を送る必要があり,そのためにJWTを使用することにしています。

JWTの作成のためのコードを自前で用意するのは厳しいので,ライブラリを使うと良いと思います。公式のサイトからリンクされていてかつスター数が多い https://github.com/auth0/node-jsonwebtokenhttps://github.com/kjur/jsrsasign を使ってみてください。これらの使い方についてはREADMEなどに載っていると思うので,それをみながら必要な情報を載せてください。人気のライブラリなのでWeb検索してもコード例が出てきそうです。

署名アルゴリズムについては書くライブラリデフォルトのもので良いと思いますが,指定する必要があるならばHS256を用いてください。

上記のライブラリを使いJWTを作成したら,そのトークンをリクエストボディに含めてAPIを叩くコードを書いてください。

またわからなければ聞いてください!

@mathsuky
Copy link
Collaborator Author

@ogu-kazemiya
Copy link
Collaborator

ありがとうございます!
読んで勉強します

@ogu-kazemiya
Copy link
Collaborator

フロント側でJWT作成する必要がなさそうな気がしています🤔
/postRequestResetPasswordからして、JWTはバックエンド側で作成していて、メールでユーザに送られたURLのパラメータとしてフロント側に送られているのかな?と思いました
認証まわりの知識が無く不安なので教えていただきたいです🙏🙏

@mathsuky
Copy link
Collaborator Author

全くもってその通りです!ごめんなさい!(自分で作ったAPIの仕様を間違えるというありえんミスをしてしまいました......)
ユーザーはクエリパラメタにJWTを持ってページに来ることが想定されるので,そのクエリパラメタをリクエストボディに含める(なければリクエストを投げない?もしくは空のままリクエストを送ってサーバー側に弾かせる?)ようにしてください

@ogu-kazemiya
Copy link
Collaborator

ありがとうございます!了解です👍

@ogu-kazemiya ogu-kazemiya linked a pull request Dec 27, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants