TIL#67:[Django]ログインレコーダをコードに適用🖤


@login_decorator..?


アクセサリーのようにコードに掛けただけです...一緒にゆっくり応用しましょう.
ログイン時にコーディネータはutilsを単独で使用します.pyはファイルを作成してそこに置きます.

login decoratorコード



コードを分解するという意味です。

  • フロントから送信されたリクエストヘッダに{"許可":"トークン"}がある場合は、access_tokenとして保存されます.
  • SECRETKEYは、ALGORITHMのセキュリティaccess_tokenに復号され、payload変数に格納される.
  • payload私たちの情報(PK,id)を含む!idの値を抽出し、user変数に入れます.
  • requestの可変特性.先に宣言したuser変数にuserを置き換えます.
  • 現在はAuthorization : TOKENを使用してユーザーをログイン状態に保つことができます!
  • まず意見ですpy勘定科目に適用されるのは、次のとおりです。


    Postingは、投稿を登録、羅列する機能を担当します.

    GET


    既存のコード



    修正されたコード



    SUCCESS HTTP REQUEST

    http -v GET 127.0.0.1:8000/posting/comment "authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ"

    SUCCESS RESULT

    HTTP/1.1 201 Created
    Content-Length: 187
    Content-Type: application/json
    Date: Thu, 11 Feb 2021 03:08:06 GMT
    Referrer-Policy: same-origin
    Server: WSGIServer/0.2 CPython/3.9.1
    Vary: Origin
    X-Content-Type-Options: nosniff
    X-Frame-Options: DENY
    
    {
        "data": [
            {
                "comment_username": "highlighter",
                "created_at": "2021-02-09T23:05:37.091Z",
                "posting_photo": 4,
                "root": 12,
                "text": "Please  work I do not want to get angry in the morning"
            }
        ]
    }

    POST


    既存のコード:



    修正されたコード:



    SUCCESS HTTP REQUEST

    http -v POST 127.0.0.1:8000/posting image_url='https://image.com/0987' description='Apple Macbook Pro 16inch' "Authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ"

    SUCCESS RESULT

    POST /posting HTTP/1.1
    Accept: application/json, */*;q=0.5
    Accept-Encoding: gzip, deflate
    Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6M30.TFktnKt-LfDLruDr2m9Qv3vt15Fb9XjgnoJLtT4U0KQ
    Connection: keep-alive
    Content-Length: 82
    Content-Type: application/json
    Host: 127.0.0.1:8000
    User-Agent: HTTPie/2.3.0
    
    {
        "description": "Apple Macbook Pro 16inch",
        "image_url": "https://image.com/0987"
    }
    
    
    HTTP/1.1 200 OK
    Content-Length: 22
    Content-Type: application/json
    Date: Thu, 11 Feb 2021 03:13:24 GMT
    Referrer-Policy: same-origin
    Server: WSGIServer/0.2 CPython/3.9.1
    Vary: Origin
    X-Content-Type-Options: nosniff
    X-Frame-Options: DENY
    
    {
        "message": "SUCCESS"
    }

    mysqlに入って投稿がちゃんと登録されているかどうか見てみましょう。

    mysql> select * from postings;
    +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
    | id | image_url                                                                                                                                                                                                                                               | created_at                 | description              | username_id |
    +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
    |  2 | https://imageurlwillchange.com                                                                                                                                                                                                                          | 2021-02-05 00:48:07.298620 | NULL                     |           1 |
    |  3 | https://www.google.com/url\?sa=i\&url=https%3A%2F%2Fwww.amazon.com%2FCute-Cats-Blu-ray-Nada-Bascarevic%2Fdp%2FB07QK7SRKZ\&psig=AOvVaw1dLsxJzx8lZ6_7uynP-LjJ\&ust=1612572994804000\&source=images\&cd=vfe\&ved=0CAIQjRxqFwoTCPjv0NbE0e4CFQAAAAAdAAAAABAD | 2021-02-05 01:30:19.752123 | NULL                     |           1 |
    |  4 | https://pleasework.com                                                                                                                                                                                                                                  | 2021-02-09 11:44:06.806212 | Oneshot Onekill...       |           3 |
    |  5 | https://image.com/1234                                                                                                                                                                                                                                  | 2021-02-11 02:50:45.207880 | Heyyyyyy                 |           3 |
    |  6 | https://image.com/0987                                                                                                                                                                                                                                  | 2021-02-11 03:13:24.457341 | Apple Macbook Pro 16inch |           3 |
    +----+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+--------------------------+-------------+
    5 rows in set (0.00 sec)
    順調にid#6に入る:)
    ユーザーのid値を要求します.userに置き換えます.そして(ログイン状態で…!この機能が実行可能かどうかを確認します.コメント、like、followも修正します🤯