[react]fetch関数を使用して登録とログインを実現
11434 ワード
1.全体の流れ
2.fetch関数
3.Backendとの通信
1)ユーザーが電子メールを入力します.Email Inputの
2)Email Inputの
3)ユーザーはパスワードを入力する.Password Inputの
4)Password Inputの
5)Buttonをクリックして
6)
7)サーバは認証/認証後の結果を応答に返信する
8)応答結果に従ってMainページに移動またはエラーメッセージを表示する
2)2番目のパラメータメソッド入力GET、POST、PATCHなどのhttpメソッド . JSON形式でデータを送受信し、bodyに入れる
->通信時には )通信は他の論理よりも長い時間を要するため、非同期処理は を用いる必要な論理を実現
->たとえば、
ログインに成功したらホームページに移動
ログインに失敗した場合は、alertウィンドウで「ユーザー名またはパスワード」を確認します.フロート
フロンテンドとBackendが同じネットワーク上にあることを確認する必要があります
*ex)WEB Wi-Fiに接続されているか確認する
画面にidとpwを入力する入力があります
入力後に「ログイン」ボタンを押してバックエンドログインapiを呼び出す
ログイン成功
-バックエンド:正常id/pwの場合のみaccesstokenを送信
-フロント:alertを使用してログイン完了メッセージを表示し、localStorageに保存
ログインに失敗しました
-バックエンド:msgを
-フロント:受信したメールをalertと表示
<ソース>wecode(コード起動キャンプ)セッション
2.fetch関数
3.Backendとの通信
1.全体の流れ
1)ユーザーが電子メールを入力します.Email Inputの
onChange
関数の実行2)Email Inputの
onChange
をvalue
関数で更新する3)ユーザーはパスワードを入力する.Password Inputの
setState
関数の実行4)Password Inputの
onChange
をonChange
関数で更新する5)Buttonをクリックして
value
関数を実行6)
setState
関数においてonClick
関数によりサーバに要求を送信する7)サーバは認証/認証後の結果を応答に返信する
8)応答結果に従ってMainページに移動またはエラーメッセージを表示する
2.fetch関数
fetch("api주소", {
method: "POST",
body: JSON.stringify({
email: this.state.id,
password: this.state.pw,
}),
})
.then((response) => response.json())
.then((result) => console.log("결과: ", result));
1)第1パラメータはapiアドレスであり,第2パラメータはhttp通信に関する内容である.2)2番目のパラメータ
->通信時には
onClick
形式のJSONに送信する必要があるため、fetch
という方法で既存のオブジェクトからStringにフォーマットを変換する(string
.then((response) => response.json())
3)最初のthenはサーバから送信された応答をオブジェクトに変換する.then((result) => console.log("결과: ", result));
4)2番目に応答をオブジェクトのコンソールに変換します.ロゴで確認します.->たとえば、
ログインに成功したらホームページに移動
ログインに失敗した場合は、alertウィンドウで「ユーザー名またはパスワード」を確認します.フロート
3.Backendとの通信
フロンテンドとBackendが同じネットワーク上にあることを確認する必要があります
*ex)WEB Wi-Fiに接続されているか確認する
画面にidとpwを入力する入力があります
入力後に「ログイン」ボタンを押してバックエンドログインapiを呼び出す
fetch('http://10.00.0.00:8000/user/signin', {
method: 'POST',
body: JSON.stringify({
email: this.state.idValue,
password: this.state.pwValue,
}),
})
.then(response => response.json())
.then(result => {
if (result.MESSAGE === 'SUCESS') {
localStorage.setItem('token', result.token);
this.props.history.push('/Main');
} else {
alert('아이디나 비밀번호를 확인해주세요');
}
});
-バックエンド:正常id/pwの場合のみaccesstokenを送信
-フロント:alertを使用してログイン完了メッセージを表示し、localStorageに保存
fetch('http://10.00.0.00:8000/user/signin', {
method: 'POST',
body: JSON.stringify({
email: this.state.idValue,
password: this.state.pwValue,
}),
})
.then(response => response.json())
.then(result => console.log('결과: ', result));
-バックエンド:msgを
-フロント:受信したメールをalertと表示
Reference
この問題について([react]fetch関数を使用して登録とログインを実現), 我々は、より多くの情報をここで見つけました https://velog.io/@ahnjh/React-fetch-함수를-이용한-회원가입-로그인-구현-실습テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol