認定、承認1
2422 ワード
👉🏼 認証
認証はプレイヤーの身元を確認するプログラム(プレイヤーの身元とパスワードを確認する).認証を行うためには,まずユーザIDとパスワードを生成できる機能が必要である.
::ログインプロセス
1.プレイヤーのアイデンティティとパスワードを生成する
2.ユーザーのパスワードを暗号化してDBに保存する(会員入力)
3.ユーザーのログイン->ユーザー名とパスワードの入力
4.ユーザーが入力したパスワードは、暗号化されていないデータベースに格納されているパスワードと照合されます.
5.一致する場合、ログインは成功しました
6.ログインに成功したら、アクセストークンをクライアントに送信する
7.ユーザーがログインに成功した後、ログインするたびに要求をサーバに送信することなく、追加のアクセストークンを使用して要求を送信できます.
👉🏻 JWT (Json Web Token)
accesstokenという暗号化されたユーザ情報を付加してrequestを送信する
//유저 로그인
POST /auth HTTP/1.1
Host: localhost:5000
Content-Type: application/json
{
"username": "joe",
"password": "pass"
}
//access token
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGl0eSI6MSwiaWF0IjoxNDQ0OTE3NjQwLCJuYmYiOjE0NDQ5MTc2NDAsImV4cCI6MTQ0NDkxNzk0MH0.KPmI6WSjRjlpzecPvs3q_T3cJQvAgJvaQAPtk1abC_E"
}
これにより、サーバはaccesstokenを復号して対応するユーザ情報を取得します.上記のコードでは、eyjhgccioijiuzI 1 NiIsInR 5 CCI 6 IkpXVCJ 9.eyJpZGVudGl0eSI6MSwiaWF0IjoxNDQ0OTE3NjQwLCJuYmYiOjE0NDQ5MTc2NDAsImV4cCI6MTQ0NDkxNzk0MH0.KPmI 6 WSjrjlpzecpvs 3 q T 3 cJQAGJvaQAPtk 1 abc Eを復号すると、以下の情報が得られる.
{
user_id : 1
}
得られたプレイヤーIDを解読することで、そのプレイヤーが誰であるかを確認することができる(もちろん実際には複数の情報が含まれている).このプログラムの目的は、そのプレイヤーがログインするたびに防止することです.accesstokenを生成する方法はいろいろありますが、その中で最も広く使われている方法はJWTです.名前の通り、JWTは、ユーザ情報を含むjsonデータを暗号化してクライアントとサーバとの間で交換する.
👉🏾 権限
承認は、ユーザが要求を実行する権利があるかどうかを確認するプログラムである.
例えば、このユーザは顧客情報を閲覧することができるが、修正することができず、私ができる行動を制限する役割を果たすことができる(Melonの使用権がなければ1分しか聞けず、非会員であればコメント機能が制限される...).
承認はJWTによっても実現できる.アクセスtokenによりユーザの情報を取得し、ユーザが持つ権限(permission)を確認することもできる.
::承認プロセス
1.認証プロセスによってaccesstokenを生成します.accesstokenには、ユーザー情報を表示できる情報(ex.userid)が含まれている必要があります.
2.ユーザが要求を送信する場合、accesstokenを付加して送信する.
3.サーバは、ユーザが送信したaccesstokenを復号する.
4.データを復号してユーザidを取得する.
5.useridを使用して、データベース内のユーザーの権限を確認します.
6.プレイヤーは要求を処理するのに十分な権限を持っている.
7.ユーザに権限がない場合、許可されていない応答(401)または他のエラーコードが送信される.
Reference
この問題について(認定、承認1), 我々は、より多くの情報をここで見つけました https://velog.io/@zzangzzong/React-인증-인가-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol