ウェブサイトのホームページがトークンまたは他の認証であることが必要に通常の状況下では、あなたは、ログインせずにホームページの内容を表示することができず、ユーザーはユーザー名とパスワードを入力し、成功を検証した後、背景はと、トークンを返します。ホームページまたは、認証が成功すると、ユーザー認証のための他のページへの次の訪問のために訪問することができます。
1、ユーザーがアクセストークン
ユーザーは、バックグラウンドのAPIとアクセストークンを検証するためのユーザー名とパスワードを送信します。
方法:{ loginSubmit(formNameフォーム){ この。$、参考文献[フォーム名] .validate()(有効な非同期は、=> { IFは、(有効){ CONST RESを待つ= この $ http.post( 'ログイン' ,. この.FORM)。 データ{CONST、メタ:{メッセージ、コード}} = res.data; IF(コード2000 === ){ // トークン取得、のlocalStorageに格納されたトークン値 localStorage.setItem( 'トークン' 、data.token)。 // 認証が成功した後、メインページに直接ジャンプ この $のrouter.push({。名前:「ホーム」}); // 成功したログインプロンプト この。$のmessage.success(メッセージ) } 他{ この$のmessage.warning(メッセージ)。 } } 他{ この $のmessage.warning( "ユーザー名またはパスワードが空白ではありません。" ) } }); } }、
2、背景の検証
クラスLoginView(APIView): authentication_classes = [] #のページの無着陸、グローバルコンフィギュレーションの残りの部分はあり DEF POST(自己、要求、* argsを、** kwargsから): RET = { " データ" :{}、 " メタ" : { " コード":2001 、 " メッセージ":" ユーザ名またはパスワードエラー" } } USER_OBJ = json.loads(STR(request._request.body、エンコーディング= ' UTF8 ')) ユーザー名 = user_obj.get(' ユーザ名' ) パスワード = user_obj.get(' パスワード' ) IFのユーザー名とパスワード: OBJ = UserInfo.objects.filter( ユーザ名 =ユーザ名、パスワード= パスワード)1次回() IF OBJ: トークン = get_md5(ユーザー名) #自動的に作成しない場合は、データベースをチェックするために行く、またはトークン更新 UserToken.objects.update_or_createを(ユーザー= OBJ、デフォルト= { 「トークン」トークン}) RET [ " データ" ] [ " ユーザ名" ] = ユーザ名 RET [ " データ" ] [ " パスワード" ] = パスワード RET [ " データ" ] [ " トークン" =] トークン [RET " メタ" ] [ " コード" ] = 2000 RET [ " メタ"] [ " メッセージ" ] = " 登陆成功」 他: 渡し 、他: パス を返すのHttpResponseを(json.dumps(RET、ensure_ascii =偽))