{"info":{"_postman_id":"d36e519d-9103-4714-9bb0-b07c145bb32b","name":"Django-Auth-Framework","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"1635081","collectionId":"d36e519d-9103-4714-9bb0-b07c145bb32b","publishedId":"U16ewUEQ","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2021-09-04T02:01:16.000Z"},"item":[{"name":"Authentication","item":[{"name":"Token Auth","item":[{"name":"Create BearerToken","id":"c43ff643-2138-4cb2-9f0d-d0e9d3ad1f14","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"dev@auth.com\",\n\t\"password\": \"1234authfw\",\n\t\"grant_type\": \"password\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/","description":"<ul>\n<li><p>Once you enabled in <code>Django Oath Toolkit</code> \nit will return user's id_token(jwt).\nu can disable this feature by:\n<code>'USE_ID_TOKEN': False,</code></p>\n</li>\n<li><p>it's recommended to use id_token as authorization token, since it wont look up database like opaque bearer token.</p>\n</li>\n<li><p>By default, it wont return user object. \nSet 'USERINFO_SERIALIZER': 'path.to.userinfo_serializer' to enable it.</p>\n</li>\n<li><p><code>username</code>. <code>email</code>, <code>phone_number</code> can be used as credentials</p>\n</li>\n</ul>\n","urlObject":{"path":["account","oauth","token",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"854d6429-8353-451c-b96e-25bae4b2aaf0","name":"401 - incorrect id/secret","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"deb@auth.com\",\n\t\"password\": \"123\",\n\t\"grant_type\": \"password\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"wrong_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 22:52:04 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"28"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"invalid_client\"\n}"},{"id":"575e4742-b435-4680-b811-7bbfbf6e1dae","name":"400 - incorrect credentials","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"dev@auth.com\",\n\t\"password\": \"123\",\n\t\"grant_type\": \"password\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 22:53:02 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"37"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"credentials not correct\"\n}"},{"id":"1d57538e-a149-42e9-a22a-22097228fdac","name":"200 - default response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"dev@auth.com\",\n\t\"password\": \"123\",\n\t\"grant_type\": \"password\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 22:54:32 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"167"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"Eaho66VLtUvp02yFKQKuclt7cy0lSV\",\n    \"expires_in\": 36000,\n    \"token_type\": \"Bearer\",\n    \"scope\": \"openid read write\",\n    \"refresh_token\": \"y2Of174RqFkoYOOAoGVxGN2cirS3YR\"\n}"},{"id":"6fd85470-d025-4b15-bf17-782ccae38795","name":"200 - return with user object","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"dev@auth.com\",\n\t\"password\": \"123\",\n\t\"grant_type\": \"password\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:02:02 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"247"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"A069Q899rZhX9sd26K3654hbBu5vpX\",\n    \"expires_in\": 36000,\n    \"token_type\": \"Bearer\",\n    \"scope\": \"openid read write\",\n    \"refresh_token\": \"DyMH09sLtaApNuFH0SZme1G8avHDy9\",\n    \"user\": {\n        \"first_name\": \"\",\n        \"last_name\": \"\",\n        \"email\": \"dev@auth.com\",\n        \"username\": \"dev\"\n    }\n}"},{"id":"bec74b96-d25f-4732-a91b-f5e75bbcc4a7","name":"200 - return with id _token/JWT","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"dev@auth.com\",\n\t\"password\": \"1234authfw\",\n\t\"grant_type\": \"password\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:49:07 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"1035"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"VzieSxxm17g1wfqw8btwaRf69QTwdo\",\n    \"expires_in\": 36000,\n    \"token_type\": \"Bearer\",\n    \"scope\": \"openid read write\",\n    \"refresh_token\": \"Moo5oF4Y4PqewmswpWmhAnzvc6chBK\",\n    \"user\": {\n        \"first_name\": \"ed\",\n        \"last_name\": \"test\",\n        \"email\": \"dev@auth.com\",\n        \"username\": \"dev\"\n    },\n    \"id_token\": \"eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiekZIVnNNOWRjNE9sSEl3dkVuVnFmS3pSajF1anFZR3NablhBY2duX0NxSSJ9.eyJhdWQiOiAiZmFrZV9jbGllbnRfaWQiLCAiaWF0IjogMTYzMDcxNjU0NywgInN1YiI6ICIxIiwgImVtYWlsIjogImRldkBhdXRoLmNvbSIsICJsYXN0X25hbWUiOiAidGVzdCIsICJmaXJzdF9uYW1lIjogImVkIiwgImlzcyI6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWNjb3VudC9vYXV0aCIsICJleHAiOiAxNjMwNzUyNTQ3LCAianRpIjogIjQxNGY1M2Y3LTg3ZmQtNGZmYS04ZTM4LTFmYzBiMGJmY2FhZiJ9.WdNr06XN7v9xVuqPAygz_hw7cv0PhiTkfOYcjmXsr3M3jl420eEypMGefS9CQXd7pR4uNIptfaQ7KUyjoD9B3YkchuTwPSMkV3_tHhrYb2XUXYJvG5UcVe0CCwD8X6SPv_0A-lJgT3KfEMIKjjnE1qvzbHrORCUfDbYYHtFOXF0mCrn0zpjdwB3zvns2vKUeGKvnHs_Ojv9pZTSc3jhxvNo7srJjYJlE5eC8CTsuBFSGhv5Q9jOTl1rouI3pUF25WRL5fTePaCrji506QqVdJN8ttwx7u_lNiq7UL7GvUniOkUPUisohYJiFlk2-W0fo6K3rE_4BC25GtUeqxHcdSw\"\n}"},{"id":"9a6df1de-13b3-45d3-8c47-b333ea1f4ccd","name":"400 - invalid refresh token","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"dev@auth.com\",\n\t\"refresh_token\": \"1234authfw\",\n\t\"grant_type\": \"refresh_token\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 01:04:23 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"27"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"invalid_grant\"\n}"},{"id":"028454d9-0582-4151-ba85-3de0d6c5e5eb","name":"200 - refresh token","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"dev@auth.com\",\n\t\"refresh_token\": \"riJ9K0kXF6eKGabQFp5d7XVGF5UBrK\",\n\t\"grant_type\": \"refresh_token\",\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\"\n\t\n}"},"url":"{{base_url}}/account/oauth/token/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 01:05:29 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"1035"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"Vv7wHFRgagmKQodqpBv1LU6vCllq60\",\n    \"expires_in\": 36000,\n    \"token_type\": \"Bearer\",\n    \"scope\": \"openid read write\",\n    \"refresh_token\": \"Qlyq9LuFy8HpKouLaY7RF6BAoLZ5Rk\",\n    \"user\": {\n        \"first_name\": \"ed\",\n        \"last_name\": \"test\",\n        \"email\": \"dev@auth.com\",\n        \"username\": \"dev\"\n    },\n    \"id_token\": \"eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiekZIVnNNOWRjNE9sSEl3dkVuVnFmS3pSajF1anFZR3NablhBY2duX0NxSSJ9.eyJhdWQiOiAiZmFrZV9jbGllbnRfaWQiLCAiaWF0IjogMTYzMDcxNzUyOSwgInN1YiI6ICIxIiwgImVtYWlsIjogImRldkBhdXRoLmNvbSIsICJsYXN0X25hbWUiOiAidGVzdCIsICJmaXJzdF9uYW1lIjogImVkIiwgImlzcyI6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWNjb3VudC9vYXV0aCIsICJleHAiOiAxNjMwNzUzNTI5LCAianRpIjogImFlNTJhZTBlLTdmOWEtNDU0Mi1iZTI2LTE0N2RmZDU3OGE1ZCJ9.DIbrpmXfNKqs7kYin8o0SZRbx_uLyGpOz7V_3-NXN1E4_kC3fjxLYf0FAtA21ehCxD8e3Nzs9DUQ6NF9VJQXfAB1mvR4TjISKWj9SGoJv2F_Jw6MWk6N-cG3dvYnO6BwZ-KrRsTtmCoJRWBI5SN7q1Obu_RhQjWMQG-yqcHJTMfxS2y-RgCd4mO7VmfPBd1JcSE-DSDYTUCU7Wpz_rAygwdcBFar1vTj8JNVxrLAW1gcVExxRzUGizAAlgjuchdcwN2A_EC0Fo-29y1dT_Pugyta5kBw8mX-MoKM6q5-Ve8yNLGYRhM0nU4iT5F2VzjKoWipcS4FytlYIXbplGrkgQ\"\n}"}],"_postman_id":"c43ff643-2138-4cb2-9f0d-d0e9d3ad1f14"},{"name":"Revoke BearerToken","id":"d4f1a9a3-9a6a-436c-b099-a2c3693c0870","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\",\n\t\"token\": \"24eabgrmxVfj9S1HZWNwHpfEYagR9u\"\n}"},"url":"{{base_url}}/account/oauth/revoke/","urlObject":{"path":["account","oauth","revoke",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"6f2b938f-a33d-41b7-b093-fe27d20683ad","name":"200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t\"client_id\": \"fake_client_id\",\n\t\"client_secret\": \"fake_secret\",\n\t\"token\": \"24eabgrmxVfj9S1HZWNwHpfEYagR9u\"\n}"},"url":"{{base_url}}/account/oauth/revoke/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:36:06 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"2"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"d4f1a9a3-9a6a-436c-b099-a2c3693c0870"}],"id":"98172198-be28-4cbe-990a-ace422b2b436","_postman_id":"98172198-be28-4cbe-990a-ace422b2b436","description":""},{"name":"Social Login","item":[{"name":"Google  Login / Sign Up","id":"019a938d-890f-453d-ba1c-c10cc1242e3d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n\t \"user_jwt\": \"Fake_jwteyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6eyJmaXJzdF9uYW1lIjoiTmV3IiwibGFzdF9uYW1lIjoiVGVzdGVyIn0sImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImlhdCI6MTUxNjIzOTAyMn0.X4bUa9YfxDv9HGV_2bTJBFasvZegshlZBwCJuBzOfaCda5z3t9D79F3fBSA-PXsBxlvFczm-DrmbVjhoei5RKgpmZK-USdAodjxNVa5BTr1FkQkLKvhRS492sygOk0ZpX7s3Holk3fVURZ6djn0mH2SfvqUf2hAi7YOunWmaf6oFkJr2Bsq4Nszzcx4EwFNOqYloH4LRPQX60lIIN7nS0mWzwlaZFl01xhwlMg11EorRp6zPQnr_XXlNsyarFeV_uD6jEcQOXs2sT15hRseDHiTGBGkHPsuKY-pAcs_nSpsTjS0L1gIiMOeH1UdkDFEjbczuXx-7pkvOh6KBqKSc5g\"\n}"},"url":"{{base_url}}/account/oauth/google/","description":"<ul>\n<li>auto signup is disable by default:\n<code>SOCIAL_AUTO_SIGNUP: False</code>. Since usually we need to ask user to fill out more required info just like sign in with password. In this case, we simply return a serialized user data('social_login') to the frontend. the fronted app will inject this data with regular signup api, the data is also useful for frontend app populate name, email in signup forms.</li>\n<li>Google supports authorizaion_code(code) and id_token(user_jwt) to get userinfo at backend.</li>\n</ul>\n","urlObject":{"path":["account","oauth","google",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"39005c07-787d-4de3-984d-f6503ea5bace","name":"400 - invalid code","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"4/invalid-or-used-authorization-code\"\n}"},"url":"{{base_url}}/account/social/google/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 01:18:06 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"133"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": {\n        \"message\": \"Error retrieving access token: {'error': 'invalid_grant', 'error_description': 'Bad Request'}\",\n        \"code\": \"AOSL001\"\n    }\n}"},{"id":"51705fb6-0b4d-4280-b56f-cf5bec209da4","name":"406 - disabled auto signup","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"4/fake-code\"\n}"},"url":"{{base_url}}/account/social/google/"},"status":"Not Acceptable","code":406,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 01:19:03 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"593"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"non_field_error\": {\n        \"message\": \"Auto SignUp disabled.\",\n        \"code\": \"AOSL002\",\n        \"social_login\": \"{\\\"account\\\": {\\\"uid\\\": \\\"123456789\\\", \\\"provider\\\": \\\"google\\\", \\\"extra_data\\\": {\\\"id\\\": \\\"123456789\\\", \\\"email\\\": \\\"test@social.com\\\", \\\"verified_email\\\": true, \\\"name\\\": \\\"fist last\\\", \\\"given_name\\\": \\\"first\\\", \\\"family_name\\\": \\\"last\\\", \\\"picture\\\": \\\"https://lh3.googleusercontent.com\\\", \\\"locale\\\": \\\"en\\\"}}, \\\"user\\\": {\\\"email\\\": \\\"test@social.com\\\", \\\"first_name\\\": \\\"first\\\", \\\"last_name\\\": \\\"last\\\"}}\"\n    }\n}"}],"_postman_id":"019a938d-890f-453d-ba1c-c10cc1242e3d"},{"name":"Apple Login/Sign Up","id":"2f243025-c4e3-4af9-acae-f8038c46310b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t \"user_jwt\": \"Fake_jwteyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6eyJmaXJzdF9uYW1lIjoiTmV3IiwibGFzdF9uYW1lIjoiVGVzdGVyIn0sImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImlhdCI6MTUxNjIzOTAyMn0.X4bUa9YfxDv9HGV_2bTJBFasvZegshlZBwCJuBzOfaCda5z3t9D79F3fBSA-PXsBxlvFczm-DrmbVjhoei5RKgpmZK-USdAodjxNVa5BTr1FkQkLKvhRS492sygOk0ZpX7s3Holk3fVURZ6djn0mH2SfvqUf2hAi7YOunWmaf6oFkJr2Bsq4Nszzcx4EwFNOqYloH4LRPQX60lIIN7nS0mWzwlaZFl01xhwlMg11EorRp6zPQnr_XXlNsyarFeV_uD6jEcQOXs2sT15hRseDHiTGBGkHPsuKY-pAcs_nSpsTjS0L1gIiMOeH1UdkDFEjbczuXx-7pkvOh6KBqKSc5g\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/oauth/google/","description":"<p>see google</p>\n","urlObject":{"path":["account","oauth","google",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"2f243025-c4e3-4af9-acae-f8038c46310b"},{"name":"Facebook  Login / Sign Up","id":"e3b648c6-1447-4d8b-84a3-db1654190127","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"access_token\": \"FAKEEAAVZ8eFacebooktoken\"\n}"},"url":"{{base_url}}/account/oauth/facebook/","description":"<p>see google</p>\n","urlObject":{"path":["account","oauth","facebook",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"e3b648c6-1447-4d8b-84a3-db1654190127"},{"name":"Disconnect a User Social Account","id":"f9fe7835-705f-474b-a288-fffdf7f1887a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"account\": \"google\"\n}"},"url":"{{base_url}}/account/social/connections/","urlObject":{"path":["account","social","connections",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"3be98193-078d-473a-b57e-78f75aebc383","name":"400","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"account\": \"google\"\n}"},"url":"{{base_url}}/account/social/connections/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 01:24:23 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"65"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"account\": [\n        \"account name is not one of the available choices.\"\n    ]\n}"}],"_postman_id":"f9fe7835-705f-474b-a288-fffdf7f1887a"},{"name":"Get User Linked Social List","id":"4fe6abce-10b7-4d84-bbfd-db4d49bbbcac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"{{base_url}}/account/social/connections/","urlObject":{"path":["account","social","connections",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"ef4ace45-5a3d-4191-b731-6b735c7b9e28","name":"200","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/account/social/connections/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Allow","value":"GET, POST, HEAD, OPTIONS","name":"Allow","description":"Valid actions for a specified resource. To be used for a 405 Method not allowed"},{"key":"CF-RAY","value":"44ae29517c0754e6-ORD","name":"CF-RAY","description":"Custom header"},{"key":"Connection","value":"keep-alive","name":"Connection","description":"Options that are desired for the connection"},{"key":"Content-Language","value":"en","name":"Content-Language","description":"The language the content is in"},{"key":"Content-Length","value":"39","name":"Content-Length","description":"The length of the response body in octets (8-bit bytes)"},{"key":"Content-Type","value":"application/json","name":"Content-Type","description":"The mime type of this content"},{"key":"Date","value":"Wed, 15 Aug 2018 19:45:24 GMT","name":"Date","description":"The date and time that the message was sent"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\"","name":"Expect-CT","description":"Custom header"},{"key":"Server","value":"cloudflare","name":"Server","description":"A name for the server"},{"key":"Strict-Transport-Security","value":"max-age=31536000","name":"Strict-Transport-Security","description":"A HSTS Policy informing the HTTP client how long to cache the HTTPS only policy and whether this applies to subdomains."},{"key":"Vary","value":"Accept, Accept-Language, Origin, Cookie","name":"Vary","description":"Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server."},{"key":"X-Frame-Options","value":"SAMEORIGIN","name":"X-Frame-Options","description":"Clickjacking protection: \"deny\" - no rendering within a frame, \"sameorigin\" - no rendering if origin mismatch"}],"cookie":[{"expires":"Wed May 15 2019 22:17:24 GMT+0000 (Coordinated Universal Time)","httpOnly":true,"domain":"myfod.ca","path":"/","secure":true,"value":"dc77d56291a1a8aabd4759c2ea90eca3a1526422644","key":"__cfduid"},{"expires":"Tue Jul 16 2019 16:07:39 GMT+0000 (Coordinated Universal Time)","httpOnly":false,"domain":"myfod.ca","path":"/","secure":false,"value":"dsndhJeU7Fb5UMnM4fph1r1XADKA1SvpskXue9fy0WG30DvfkeRsivWj5WimHGd2","key":"_csrftoken"},{"expires":"Thu Aug 16 2018 22:13:56 GMT+0000 (Coordinated Universal Time)","httpOnly":true,"domain":"staging.myfod.ca","path":"/","secure":false,"value":"w3u5bt1ryakh62zivv8fg4pq2jkv90wq","key":"sessionid"}],"responseTime":null,"body":"{\"linked_social\":[\"google\",\"facebook\"]}"}],"_postman_id":"4fe6abce-10b7-4d84-bbfd-db4d49bbbcac"}],"id":"353e799f-fdcf-433d-a80b-a33cd5f4d308","_postman_id":"353e799f-fdcf-433d-a80b-a33cd5f4d308","description":""},{"name":"Create New User","id":"2dc14b2b-da3c-405a-95a2-638a118134dc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"test1@auth.com\",\n    \"password1\": \"123authfw\",\n    \"custom_charfield\": \"foo-bar\",\n    \"password2\": \"123authfw\",\n    \"client_id\": \"fake_client_id\"\n}"},"url":"{{base_url}}/account/registration/","description":"<p>to extends your signup serializer for processing custom validation:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-python\">#serializers.py\nclass TestUserCreationSerializer(serializers.ModelSerializer):\n    custom_charfield = serializers.CharField()\n\n    class Meta:\n        model = UserModel\n        fields = ('email', 'username', 'custom_charfield')\n\n#settings.py\n'SERIALIZERS': {\n        'SIGNUP_SERIALIZER': 'my_auth.serializers.TestUserCreationSerializer',\n    },\n</code></pre>\n","urlObject":{"path":["account","registration",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"c12a2591-dd55-4860-9055-ca110baa6308","name":"201 - create a user to default response without user object","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"test@auth.com\",\n    \"password1\": \"123authfw\",\n    \"password2\": \"123authfw\",\n    \"client_id\": \"fake_client_id\"\n}"},"url":"{{base_url}}/account/registration/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:43:01 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"145"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"8nTUWB1vEgo613KAThdZcCmlbfKBc2\",\n    \"refresh_token\": \"Ws297wkSXhOh1wLmGOhcfZ7dFtFhqM\",\n    \"scope\": \"openid read write\",\n    \"expires_in\": 36000\n}"},{"id":"3673781c-6ea9-4d55-a6a2-f0f796810861","name":"201 - return with userinfo object","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"test1@auth.com\",\n    \"password1\": \"123authfw\",\n    \"custom_charfield\": \"foo-bar\",\n    \"password2\": \"123authfw\",\n    \"client_id\": \"fake_client_id\"\n}"},"url":"{{base_url}}/account/registration/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:34:47 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"238"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"24eabgrmxVfj9S1HZWNwHpfEYagR9u\",\n    \"refresh_token\": \"y9GNEwFeAtzYtYZQBdxcAzxRBuud1h\",\n    \"scope\": \"openid read write\",\n    \"expires_in\": 36000,\n    \"user\": {\n        \"first_name\": \"\",\n        \"last_name\": \"\",\n        \"email\": \"test1@auth.com\",\n        \"username\": \"test1@auth.com\"\n    }\n}"},{"id":"40b723f9-8704-4815-abce-be5858af613c","name":"400 - invalid on custom signup serializer","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"test@auth.com\",\n    \"password1\": \"123authfw\",\n    \"password2\": \"123authfw\",\n    \"client_id\": \"fake_client_id\"\n}"},"url":"{{base_url}}/account/registration/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:28:42 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"48"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"custom_charfield\": [\n        \"This field is required.\"\n    ]\n}"},{"id":"1065d89f-d98b-4ea6-ae59-c0e9f081aa28","name":"201 - created with social accont info","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"de2@auth.com\",\n    \"password1\": \"123authfw\",\n    \"custom_charfield\": \"foo-bar\",\n    \"client_id\": \"fake_client_id\",\n    \"social_login\": \"{\\\"account\\\": {\\\"uid\\\": \\\"123456789\\\", \\\"provider\\\": \\\"google\\\", \\\"extra_data\\\": {\\\"id\\\": \\\"123456789\\\", \\\"email\\\": \\\"test@social.com\\\", \\\"verified_email\\\": true, \\\"name\\\": \\\"fist last\\\", \\\"given_name\\\": \\\"first\\\", \\\"family_name\\\": \\\"last\\\", \\\"picture\\\": \\\"https://lh3.googleusercontent.com\\\", \\\"locale\\\": \\\"en\\\"}}, \\\"user\\\": {\\\"email\\\": \\\"test@social.com\\\", \\\"first_name\\\": \\\"first\\\", \\\"last_name\\\": \\\"last\\\"}}\"\n}"},"url":"{{base_url}}/account/registration/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 01:30:56 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"1079"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"uUiiQMEK5ChxFvAQUVr6ZaVU8l68wQ\",\n    \"refresh_token\": \"U3bzsI34Ezth1cUIbombVGeveP6odx\",\n    \"scope\": \"openid read write\",\n    \"expires_in\": 36000,\n    \"user\": {\n        \"first_name\": \"first\",\n        \"last_name\": \"last\",\n        \"email\": \"de2@auth.com\",\n        \"username\": \"de2\"\n    },\n    \"id_token\": \"eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiekZIVnNNOWRjNE9sSEl3dkVuVnFmS3pSajF1anFZR3NablhBY2duX0NxSSJ9.eyJhdWQiOiAiZmFrZV9jbGllbnRfaWQiLCAiaWF0IjogMTYzMDcxOTA1NiwgIm5vbmNlIjogInNlcnZlci1nZW4iLCAic3ViIjogIjgiLCAiZW1haWwiOiAiZGUyQGF1dGguY29tIiwgImxhc3RfbmFtZSI6ICJsYXN0IiwgImZpcnN0X25hbWUiOiAiZmlyc3QiLCAiaXNzIjogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hY2NvdW50L3JlZ2lzdHJhdGlvbi9hY2NvdW50L29hdXRoIiwgImV4cCI6IDE2MzA3NTUwNTYsICJqdGkiOiAiN2Y5ZTRlZmEtNzE2Yy00M2I4LTlkYzAtNjY3OWMwMjdmNjZmIn0.Ab0cz_NW63PgYCC3dAmC62BUW-ma91EIlmdkrxEXTutFWiAMeD_Ou_Jkv9YBT3PC4o2lSdTt3Vv_OKTe5d8_Z4Vc9hNE824BFWw5bHCwTGr521pavfsTcs4tno9XhrdlHwz1w4pZvERlmOi0gENhnwgwkowRN7M3sMxzWOLc6hjIXFTHPmdHNlKfxRhElb4bi2PWv1O2i74IXxyaF2HctgSfqDnSj6frw_7zx30B2BdBsTPjnl85yMdSQA4K4a-7uO6epe7bn6-dN_FonuXXIgYS9SB34bOrA4F4B6mwY4ANKKCRnYsdUe8J0iWqRfsxB-sogziT4kyqQs-_SMUh1A\"\n}"},{"id":"3250c84c-9300-435e-808c-4e94e8303aaa","name":"500  - a known issue","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"des2@auth.com\",\n    \"password1\": \"123authfw\",\n    \"password2\": \"123authfw\",\n    \"custom_charfield\": \"foo-bar\",\n    \"client_id\": \"fake_client_id\",\n    \"social_login\": \"{\\\"account\\\": {\\\"uid\\\": \\\"123456789\\\", \\\"provider\\\": \\\"google\\\", \\\"extra_data\\\": {\\\"id\\\": \\\"123456789\\\", \\\"email\\\": \\\"test@social.com\\\", \\\"verified_email\\\": true, \\\"name\\\": \\\"fist last\\\", \\\"given_name\\\": \\\"first\\\", \\\"family_name\\\": \\\"last\\\", \\\"picture\\\": \\\"https://lh3.googleusercontent.com\\\", \\\"locale\\\": \\\"en\\\"}}, \\\"user\\\": {\\\"email\\\": \\\"test@social.com\\\", \\\"first_name\\\": \\\"first\\\", \\\"last_name\\\": \\\"last\\\"}}\"\n}"},"url":"{{base_url}}/account/registration/"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":"html","header":[{"key":"Date","value":"Sat, 04 Sep 2021 01:41:56 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"text/html"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"188636"},{"key":"Vary","value":"Cookie"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n        <meta name=\"robots\" content=\"NONE,NOARCHIVE\">\n        <title>IntegrityError\n          at /account/registration/</title>\n        <style type=\"text/css\">\n    html * { padding:0; margin:0; }\n    body * { padding:10px 20px; }\n    body * * { padding:0; }\n    body { font:small sans-serif; background-color:#fff; color:#000; }\n    body>div { border-bottom:1px solid #ddd; }\n    h1 { font-weight:normal; }\n    h2 { margin-bottom:.8em; }\n    h3 { margin:1em 0 .5em 0; }\n    h4 { margin:0 0 .5em 0; font-weight: normal; }\n    code, pre { font-size: 100%; white-space: pre-wrap; }\n    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }\n    tbody td, tbody th { vertical-align:top; padding:2px 3px; }\n    thead th {\n      padding:1px 6px 1px 3px; background:#fefefe; text-align:left;\n      font-weight:normal; font-size:11px; border:1px solid #ddd;\n    }\n    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }\n    table.vars { margin:5px 0 2px 40px; }\n    table.vars td, table.req td { font-family:monospace; }\n    table td.code { width:100%; }\n    table td.code pre { overflow:hidden; }\n    table.source th { color:#666; }\n    table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }\n    ul.traceback { list-style-type:none; color: #222; }\n    ul.traceback li.frame { padding-bottom:1em; color:#4f4f4f; }\n    ul.traceback li.user { background-color:#e0e0e0; color:#000 }\n    div.context { padding:10px 0; overflow:hidden; }\n    div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }\n    div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }\n    div.context ol li pre { display:inline; }\n    div.context ol.context-line li { color:#464646; background-color:#dfdfdf; padding: 3px 2px; }\n    div.context ol.context-line li span { position:absolute; right:32px; }\n    .user div.context ol.context-line li { background-color:#bbb; color:#000; }\n    .user div.context ol li { color:#666; }\n    div.commands { margin-left: 40px; }\n    div.commands a { color:#555; text-decoration:none; }\n    .user div.commands a { color: black; }\n    #summary { background: #ffc; }\n    #summary h2 { font-weight: normal; color: #666; }\n    #explanation { background:#eee; }\n    #template, #template-not-exist { background:#f6f6f6; }\n    #template-not-exist ul { margin: 0 0 10px 20px; }\n    #template-not-exist .postmortem-section { margin-bottom: 3px; }\n    #unicode-hint { background:#eee; }\n    #traceback { background:#eee; }\n    #requestinfo { background:#f6f6f6; padding-left:120px; }\n    #summary table { border:none; background:transparent; }\n    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }\n    #requestinfo h3 { margin-bottom:-1em; }\n    .error { background: #ffc; }\n    .specific { color:#cc3300; font-weight:bold; }\n    h2 span.commands { font-size:.7em; font-weight:normal; }\n    span.commands a:link {color:#5E5694;}\n    pre.exception_value { font-family: sans-serif; color: #575757; font-size: 1.5em; margin: 10px 0 10px 0; }\n    .append-bottom { margin-bottom: 10px; }\n    .fname { user-select: all; }\n  </style>\n        <script>\n    function hideAll(elems) {\n      for (var e = 0; e < elems.length; e++) {\n        elems[e].style.display = 'none';\n      }\n    }\n    window.onload = function() {\n      hideAll(document.querySelectorAll('table.vars'));\n      hideAll(document.querySelectorAll('ol.pre-context'));\n      hideAll(document.querySelectorAll('ol.post-context'));\n      hideAll(document.querySelectorAll('div.pastebin'));\n    }\n    function toggle() {\n      for (var i = 0; i < arguments.length; i++) {\n        var e = document.getElementById(arguments[i]);\n        if (e) {\n          e.style.display = e.style.display == 'none' ? 'block': 'none';\n        }\n      }\n      return false;\n    }\n    function varToggle(link, id) {\n      toggle('v' + id);\n      var s = link.getElementsByTagName('span')[0];\n      var uarr = String.fromCharCode(0x25b6);\n      var darr = String.fromCharCode(0x25bc);\n      s.textContent = s.textContent == uarr ? darr : uarr;\n      return false;\n    }\n    function switchPastebinFriendly(link) {\n      s1 = \"Switch to copy-and-paste view\";\n      s2 = \"Switch back to interactive view\";\n      link.textContent = link.textContent.trim() == s1 ? s2: s1;\n      toggle('browserTraceback', 'pastebinTraceback');\n      return false;\n    }\n  \n        </script>\n    </head>\n    <body>\n        <div id=\"summary\">\n            <h1>IntegrityError\n       at /account/registration/</h1>\n            <pre class=\"exception_value\">UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid</pre>\n            <table class=\"meta\">\n                <tr>\n                    <th>Request Method:</th>\n                    <td>POST</td>\n                </tr>\n                <tr>\n                    <th>Request URL:</th>\n                    <td>http://localhost:8000/account/registration/</td>\n                </tr>\n                <tr>\n                    <th>Django Version:</th>\n                    <td>3.2.7</td>\n                </tr>\n                <tr>\n                    <th>Exception Type:</th>\n                    <td>IntegrityError</td>\n                </tr>\n                <tr>\n                    <th>Exception Value:</th>\n                    <td>\n                        <pre>UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid</pre>\n                    </td>\n                </tr>\n                <tr>\n                    <th>Exception Location:</th>\n                    <td>\n                        <span class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py</span>, line 423, in execute\n                    </td>\n                </tr>\n                <tr>\n                    <th>Python Executable:</th>\n                    <td>/usr/local/opt/python@3.9/bin/python3.9</td>\n                </tr>\n                <tr>\n                    <th>Python Version:</th>\n                    <td>3.9.5</td>\n                </tr>\n                <tr>\n                    <th>Python Path:</th>\n                    <td>\n                        <pre>[&#x27;/Users/haolunchai/Acrossor/Lib/testauth&#x27;,\n &#x27;/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/pydev&#x27;,\n &#x27;/Users/haolunchai/Acrossor/Lib/testauth&#x27;,\n &#x27;/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/pycharm_display&#x27;,\n &#x27;/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/third_party/thriftpy&#x27;,\n &#x27;/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/pydev&#x27;,\n &#x27;/Users/haolunchai/Library/Caches/JetBrains/PyCharm2021.1/cythonExtensions&#x27;,\n &#x27;/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python39.zip&#x27;,\n &#x27;/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9&#x27;,\n &#x27;/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload&#x27;,\n &#x27;/usr/local/lib/python3.9/site-packages&#x27;,\n &#x27;/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend&#x27;]</pre>\n                    </td>\n                </tr>\n                <tr>\n                    <th>Server time:</th>\n                    <td>Sat, 04 Sep 2021 01:41:56 +0000</td>\n                </tr>\n            </table>\n        </div>\n        <div id=\"traceback\">\n            <h2>Traceback \n                <span class=\"commands\">\n                    <a href=\"#\" onclick=\"return switchPastebinFriendly(this);\">\n    Switch to copy-and-paste view</a>\n                </span>\n            </h2>\n            <div id=\"browserTraceback\">\n                <ul class=\"traceback\">\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py</code>, line 84, in _execute\n                        <div class=\"context\" id=\"c4612764352\">\n                            <ol start=\"77\" class=\"pre-context\" id=\"pre4612764352\">\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>    def _execute(self, sql, params, *ignored_wrapper_args):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        self.db.validate_no_broken_transaction()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        with self.db.wrap_database_errors:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>            if params is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>                # params default might be backend specific.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>                return self.cursor.execute(sql)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>            else:</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"84\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>                return self.cursor.execute(sql, params)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='85' class=\"post-context\" id=\"post4612764352\">\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>    def _executemany(self, sql, param_list, *ignored_wrapper_args):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        self.db.validate_no_broken_transaction()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        with self.db.wrap_database_errors:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>            return self.cursor.executemany(sql, param_list)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre></pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612764352')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612764352\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>ignored_wrapper_args</td>\n                                    <td class=\"code\">\n                                        <pre>(False,\n {&#x27;connection&#x27;: &lt;django.db.backends.sqlite3.base.DatabaseWrapper object at 0x112f37100&gt;,\n  &#x27;cursor&#x27;: &lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;})</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>sql</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (%s, %s, %s, %s, %s)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py</code>, line 423, in execute\n                        <div class=\"context\" id=\"c4612719744\">\n                            <ol start=\"416\" class=\"pre-context\" id=\"pre4612719744\">\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    This fixes it -- but note that if you want to use a literal &quot;%s&quot; in a query,</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    you&#x27;ll need to use &quot;%%s&quot;.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    &quot;&quot;&quot;</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    def execute(self, query, params=None):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        if params is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>            return Database.Cursor.execute(self, query)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        query = self.convert_query(query)</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"423\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        return Database.Cursor.execute(self, query, params)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='424' class=\"post-context\" id=\"post4612719744\">\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    def executemany(self, query, param_list):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        query = self.convert_query(query)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        return Database.Cursor.executemany(self, query, param_list)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    def convert_query(self, query):</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612719744')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612719744\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>query</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (?, ?, ?, ?, ?)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x112fc2ca0&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li>\n                        <h3>\n          \n            The above exception (UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid) was the direct cause of the following exception:\n          \n        </h3>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py</code>, line 47, in inner\n                        <div class=\"context\" id=\"c4612767360\">\n                            <ol start=\"40\" class=\"pre-context\" id=\"pre4612767360\">\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>                response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>            return response</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>        return inner</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>    else:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>        @wraps(get_response)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>        def inner(request):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>            try:</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"47\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>                response = get_response(request)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='48' class=\"post-context\" id=\"post4612767360\">\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>            except Exception as exc:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>                response = response_for_exception(request, exc)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>            return response</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre>        return inner</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767360', 'post4612767360')\">\n                                    <pre></pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612767360')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612767360\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>exc</td>\n                                    <td class=\"code\">\n                                        <pre>IntegrityError(&#x27;UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid&#x27;)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>get_response</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;bound method BaseHandler._get_response of &lt;django.core.handlers.wsgi.WSGIHandler object at 0x111ce06a0&gt;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>request</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;WSGIRequest: POST &#x27;/account/registration/&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py</code>, line 181, in _get_response\n                        <div class=\"context\" id=\"c4612767616\">\n                            <ol start=\"174\" class=\"pre-context\" id=\"pre4612767616\">\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>        if response is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>            wrapped_callback = self.make_view_atomic(callback)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>            # If it is an asynchronous view, run it in a subthread.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>            if asyncio.iscoroutinefunction(wrapped_callback):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>                wrapped_callback = async_to_sync(wrapped_callback)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>            try:</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"181\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>                response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='182' class=\"post-context\" id=\"post4612767616\">\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>            except Exception as e:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>                response = self.process_exception_by_middleware(e, request)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>                if response is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>                    raise</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767616', 'post4612767616')\">\n                                    <pre>        # Complain if the view returned None (a common error).</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612767616')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612767616\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>callback</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;function CreateUserWToken at 0x112d04d30&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>callback_args</td>\n                                    <td class=\"code\">\n                                        <pre>()</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>callback_kwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>middleware_method</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x112e19a90&gt;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>request</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;WSGIRequest: POST &#x27;/account/registration/&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>response</td>\n                                    <td class=\"code\">\n                                        <pre>None</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x111ce06a0&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>wrapped_callback</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;function CreateUserWToken at 0x112d04d30&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/views/decorators/csrf.py</code>, line 54, in wrapped_view\n                        <div class=\"context\" id=\"c4612767296\">\n                            <ol start=\"47\" class=\"pre-context\" id=\"pre4612767296\">\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>def csrf_exempt(view_func):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>    &quot;&quot;&quot;Mark a view function as being exempt from the CSRF view protection.&quot;&quot;&quot;</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>    # view_func.csrf_exempt = True would also work, but decorators are nicer</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>    # if they don&#x27;t have side effects, so return a new function.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>    def wrapped_view(*args, **kwargs):</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"54\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>        return view_func(*args, **kwargs)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='55' class=\"post-context\" id=\"post4612767296\">\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>    wrapped_view.csrf_exempt = True</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767296', 'post4612767296')\">\n                                    <pre>    return wraps(view_func)(wrapped_view)</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612767296')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612767296\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>args</td>\n                                    <td class=\"code\">\n                                        <pre>(&lt;WSGIRequest: POST &#x27;/account/registration/&#x27;&gt;,)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>kwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>view_func</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;function CreateUserWToken at 0x112d04ca0&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/views/generic/base.py</code>, line 70, in view\n                        <div class=\"context\" id=\"c4615473792\">\n                            <ol start=\"63\" class=\"pre-context\" id=\"pre4615473792\">\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>            self = cls(**initkwargs)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>            self.setup(request, *args, **kwargs)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>            if not hasattr(self, &#x27;request&#x27;):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>                raise AttributeError(</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>                    &quot;%s instance has no &#x27;request&#x27; attribute. Did you override &quot;</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>                    &quot;setup() and forget to call super()?&quot; % cls.__name__</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>                )</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"70\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>            return self.dispatch(request, *args, **kwargs)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='71' class=\"post-context\" id=\"post4615473792\">\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>        view.view_class = cls</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>        view.view_initkwargs = initkwargs</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>        # take name and docstring from class</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre>        update_wrapper(view, cls, updated=())</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4615473792', 'post4615473792')\">\n                                    <pre></pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4615473792')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4615473792\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>args</td>\n                                    <td class=\"code\">\n                                        <pre>()</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>cls</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;auth_framework.oauth.views.CreateUserWToken&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>initkwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>kwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>request</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;WSGIRequest: POST &#x27;/account/registration/&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame user\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/rest_framework/views.py</code>, line 509, in dispatch\n                        <div class=\"context\" id=\"c4612765568\">\n                            <ol start=\"502\" class=\"pre-context\" id=\"pre4612765568\">\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>                                  self.http_method_not_allowed)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>            else:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>                handler = self.http_method_not_allowed</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>            response = handler(request, *args, **kwargs)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>        except Exception as exc:</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"509\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>            response = self.handle_exception(exc)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='510' class=\"post-context\" id=\"post4612765568\">\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>        self.response = self.finalize_response(request, response, *args, **kwargs)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>        return self.response</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>    def options(self, request, *args, **kwargs):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612765568', 'post4612765568')\">\n                                    <pre>        &quot;&quot;&quot;</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612765568')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612765568\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>args</td>\n                                    <td class=\"code\">\n                                        <pre>()</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>handler</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;bound method CreateUserWToken.post of &lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>kwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>request</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;rest_framework.request.Request: POST &#x27;/account/registration/&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame user\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/rest_framework/views.py</code>, line 469, in handle_exception\n                        <div class=\"context\" id=\"c4612764800\">\n                            <ol start=\"462\" class=\"pre-context\" id=\"pre4612764800\">\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>        exception_handler = self.get_exception_handler()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>        context = self.get_exception_handler_context()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>        response = exception_handler(exc, context)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>        if response is None:</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"469\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>            self.raise_uncaught_exception(exc)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='470' class=\"post-context\" id=\"post4612764800\">\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>        response.exception = True</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>        return response</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>    def raise_uncaught_exception(self, exc):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764800', 'post4612764800')\">\n                                    <pre>        if settings.DEBUG:</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612764800')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612764800\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>context</td>\n                                    <td class=\"code\">\n                                        <pre>{&#x27;args&#x27;: (),\n &#x27;kwargs&#x27;: {},\n &#x27;request&#x27;: &lt;rest_framework.request.Request: POST &#x27;/account/registration/&#x27;&gt;,\n &#x27;view&#x27;: &lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>exc</td>\n                                    <td class=\"code\">\n                                        <pre>IntegrityError(&#x27;UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid&#x27;)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>exception_handler</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;function exception_handler at 0x112b931f0&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>response</td>\n                                    <td class=\"code\">\n                                        <pre>None</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame user\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/rest_framework/views.py</code>, line 480, in raise_uncaught_exception\n                        <div class=\"context\" id=\"c4612764544\">\n                            <ol start=\"473\" class=\"pre-context\" id=\"pre4612764544\">\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>    def raise_uncaught_exception(self, exc):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>        if settings.DEBUG:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>            request = self.request</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>            renderer_format = getattr(request.accepted_renderer, &#x27;format&#x27;)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>            use_plaintext_traceback = renderer_format not in (&#x27;html&#x27;, &#x27;api&#x27;, &#x27;admin&#x27;)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>            request.force_plaintext_errors(use_plaintext_traceback)</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"480\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>        raise exc</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='481' class=\"post-context\" id=\"post4612764544\">\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>    # Note: Views are made CSRF exempt from within `as_view` as to prevent</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>    # accidental removal of this exemption in cases where `dispatch` needs to</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>    # be overridden.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>    def dispatch(self, request, *args, **kwargs):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764544', 'post4612764544')\">\n                                    <pre>        &quot;&quot;&quot;</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612764544')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612764544\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>exc</td>\n                                    <td class=\"code\">\n                                        <pre>IntegrityError(&#x27;UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid&#x27;)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>renderer_format</td>\n                                    <td class=\"code\">\n                                        <pre>&#x27;json&#x27;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>request</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;rest_framework.request.Request: POST &#x27;/account/registration/&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>use_plaintext_traceback</td>\n                                    <td class=\"code\">\n                                        <pre>True</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame user\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/rest_framework/views.py</code>, line 506, in dispatch\n                        <div class=\"context\" id=\"c4612842560\">\n                            <ol start=\"499\" class=\"pre-context\" id=\"pre4612842560\">\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>            # Get the appropriate handler method</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>            if request.method.lower() in self.http_method_names:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>                handler = getattr(self, request.method.lower(),</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>                                  self.http_method_not_allowed)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>            else:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>                handler = self.http_method_not_allowed</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre></pre>\n                                </li>\n                            </ol>\n                            <ol start=\"506\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>            response = handler(request, *args, **kwargs)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='507' class=\"post-context\" id=\"post4612842560\">\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>        except Exception as exc:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>            response = self.handle_exception(exc)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>        self.response = self.finalize_response(request, response, *args, **kwargs)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842560', 'post4612842560')\">\n                                    <pre>        return self.response</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612842560')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612842560\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>args</td>\n                                    <td class=\"code\">\n                                        <pre>()</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>handler</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;bound method CreateUserWToken.post of &lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>kwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>request</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;rest_framework.request.Request: POST &#x27;/account/registration/&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame user\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/auth_framework/oauth/views.py</code>, line 83, in post\n                        <div class=\"context\" id=\"c4605526656\">\n                            <ol start=\"76\" class=\"pre-context\" id=\"pre4605526656\">\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        return client</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>    def post(self, *args, **kwargs):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        client = self.validate_client(raise_exception=True)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        serializer = self.get_serializer(data=self.request.data)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        serializer.is_valid(raise_exception=True)</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"83\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        user = serializer.save()</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='84' class=\"post-context\" id=\"post4605526656\">\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        token = get_access_token(user, request=self.request)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        # token_serializer = AccessTokenSerializer(token)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4605526656', 'post4605526656')\">\n                                    <pre>        return Response(token, status=status.HTTP_201_CREATED)</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4605526656')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4605526656\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>args</td>\n                                    <td class=\"code\">\n                                        <pre>(&lt;rest_framework.request.Request: POST &#x27;/account/registration/&#x27;&gt;,)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>client</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;Application: fake_client_id&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>kwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;auth_framework.oauth.views.CreateUserWToken object at 0x112f00970&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>serializer</td>\n                                    <td class=\"code\">\n                                        <pre>SocialSignUpSerializer(context={&#x27;request&#x27;: &lt;rest_framework.request.Request: POST &#x27;/account/registration/&#x27;&gt;, &#x27;format&#x27;: None, &#x27;view&#x27;: &lt;auth_framework.oauth.views.CreateUserWToken object&gt;, &#x27;social_data&#x27;: &lt;auth_framework.social.providers.abstract_adapter.OauthAdapter object&gt;}, data={&#x27;email&#x27;: &#x27;des2@auth.com&#x27;, &#x27;password1&#x27;: &#x27;123authfw&#x27;, &#x27;password2&#x27;: &#x27;123authfw&#x27;, &#x27;custom_charfield&#x27;: &#x27;foo-bar&#x27;, &#x27;client_id&#x27;: &#x27;fake_client_id&#x27;, &#x27;social_login&#x27;: &#x27;{&quot;account&quot;: {&quot;uid&quot;: &quot;123456789&quot;, &quot;provider&quot;: &quot;google&quot;, &quot;extra_data&quot;: {&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}}, &quot;user&quot;: {&quot;email&quot;: &quot;test@social.com&quot;, &quot;first_name&quot;: &quot;first&quot;, &quot;last_name&quot;: &quot;last&quot;}}&#x27;}):\n    email = EmailField()\n    password1 = CharField()\n    password2 = CharField()\n    username = CharField()\n    first_name = CharField(allow_blank=True, max_length=150, required=False)\n    last_name = CharField(allow_blank=True, max_length=150, required=False)\n    custom_charfield = CharField()</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame user\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/auth_framework/social/serializers.py</code>, line 38, in save\n                        <div class=\"context\" id=\"c4612604032\">\n                            <ol start=\"31\" class=\"pre-context\" id=\"pre4612604032\">\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>    def populate_user(self):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>        return self.social_adapter.user</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>    def save(self):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>        with transaction.atomic():</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>            user = super().save()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>            # TODO: reedit</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"38\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>            self.social_adapter.save(connect_user=user)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='39' class=\"post-context\" id=\"post4612604032\">\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>            return user</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>class SocialLoginSerializer(serializers.Serializer):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>    access_token = serializers.CharField(required=False, allow_blank=True)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612604032', 'post4612604032')\">\n                                    <pre>    code = serializers.CharField(required=False, allow_blank=True)</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612604032')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612604032\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>__class__</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;auth_framework.social.serializers.SocialSignUpSerializer&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>SocialSignUpSerializer(context={&#x27;request&#x27;: &lt;rest_framework.request.Request: POST &#x27;/account/registration/&#x27;&gt;, &#x27;format&#x27;: None, &#x27;view&#x27;: &lt;auth_framework.oauth.views.CreateUserWToken object&gt;, &#x27;social_data&#x27;: &lt;auth_framework.social.providers.abstract_adapter.OauthAdapter object&gt;}, data={&#x27;email&#x27;: &#x27;des2@auth.com&#x27;, &#x27;password1&#x27;: &#x27;123authfw&#x27;, &#x27;password2&#x27;: &#x27;123authfw&#x27;, &#x27;custom_charfield&#x27;: &#x27;foo-bar&#x27;, &#x27;client_id&#x27;: &#x27;fake_client_id&#x27;, &#x27;social_login&#x27;: &#x27;{&quot;account&quot;: {&quot;uid&quot;: &quot;123456789&quot;, &quot;provider&quot;: &quot;google&quot;, &quot;extra_data&quot;: {&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}}, &quot;user&quot;: {&quot;email&quot;: &quot;test@social.com&quot;, &quot;first_name&quot;: &quot;first&quot;, &quot;last_name&quot;: &quot;last&quot;}}&#x27;}):\n    email = EmailField()\n    password1 = CharField()\n    password2 = CharField()\n    username = CharField()\n    first_name = CharField(allow_blank=True, max_length=150, required=False)\n    last_name = CharField(allow_blank=True, max_length=150, required=False)\n    custom_charfield = CharField()</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>user</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;MyUser: des2&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame user\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/auth_framework/social/providers/abstract_adapter.py</code>, line 151, in save\n                        <div class=\"context\" id=\"c4613623744\">\n                            <ol start=\"144\" class=\"pre-context\" id=\"pre4613623744\">\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>            if connect_user:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>                self.user = connect_user</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>                self.social_acct.user = connect_user</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>            else:  # if auto signup enabled, we perform a quick user creation.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>                self.user.set_unusable_password()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>                self.user.save()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>                self.social_acct.user = self.user</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"151\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>            self.social_acct.save()</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='152' class=\"post-context\" id=\"post4613623744\">\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>            return self.social_acct</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>    def serialize(self) -&gt; dict:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>        def default_social_acct_serializer(social_acct:SocialAccount) -&gt; dict:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>            return {&#x27;uid&#x27;: social_acct.uid, &#x27;provider&#x27;: social_acct.provider, &#x27;extra_data&#x27;: social_acct.extra_data }</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4613623744', 'post4613623744')\">\n                                    <pre>        social_acct_serializer = getattr(SocialAccount, &#x27;serializer&#x27;, default_social_acct_serializer)</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4613623744')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4613623744\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>connect_user</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;MyUser: des2&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;auth_framework.social.providers.abstract_adapter.OauthAdapter object at 0x112f00760&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/models/base.py</code>, line 726, in save\n                        <div class=\"context\" id=\"c4612606144\">\n                            <ol start=\"719\" class=\"pre-context\" id=\"pre4612606144\">\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>            for field in self._meta.concrete_fields:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>                if not field.primary_key and not hasattr(field, &#x27;through&#x27;):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>                    field_names.add(field.attname)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>            loaded_fields = field_names.difference(deferred_fields)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>            if loaded_fields:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>                update_fields = frozenset(loaded_fields)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre></pre>\n                                </li>\n                            </ol>\n                            <ol start=\"726\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>        self.save_base(using=using, force_insert=force_insert,</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='727' class=\"post-context\" id=\"post4612606144\">\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>                       force_update=force_update, update_fields=update_fields)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>    save.alters_data = True</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>    def save_base(self, raw=False, force_insert=False,</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>                  force_update=False, using=None, update_fields=None):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612606144', 'post4612606144')\">\n                                    <pre>        &quot;&quot;&quot;</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612606144')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612606144\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>deferred_fields</td>\n                                    <td class=\"code\">\n                                        <pre>set()</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>force_insert</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>force_update</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;SocialAccount: des2 - google&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>update_fields</td>\n                                    <td class=\"code\">\n                                        <pre>None</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>using</td>\n                                    <td class=\"code\">\n                                        <pre>&#x27;default&#x27;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/models/base.py</code>, line 763, in save_base\n                        <div class=\"context\" id=\"c4612763776\">\n                            <ol start=\"756\" class=\"pre-context\" id=\"pre4612763776\">\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>            context_manager = transaction.atomic(using=using, savepoint=False)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>        else:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>            context_manager = transaction.mark_for_rollback_on_error(using=using)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>        with context_manager:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>            parent_inserted = False</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>            if not raw:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>                parent_inserted = self._save_parents(cls, using, update_fields)</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"763\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>            updated = self._save_table(</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='764' class=\"post-context\" id=\"post4612763776\">\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>                raw, cls, force_insert or parent_inserted,</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>                force_update, using, update_fields,</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>            )</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>        # Store the database on which the object was saved</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>        self._state.db = using</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612763776', 'post4612763776')\">\n                                    <pre>        # Once saved, this is no longer a to-be-added instance.</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612763776')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612763776\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>cls</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;auth_framework.models.SocialAccount&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>context_manager</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;contextlib._GeneratorContextManager object at 0x112e3c970&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>force_insert</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>force_update</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>meta</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;Options for SocialAccount&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>origin</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;auth_framework.models.SocialAccount&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>parent_inserted</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>raw</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;SocialAccount: des2 - google&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>update_fields</td>\n                                    <td class=\"code\">\n                                        <pre>None</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>using</td>\n                                    <td class=\"code\">\n                                        <pre>&#x27;default&#x27;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/models/base.py</code>, line 868, in _save_table\n                        <div class=\"context\" id=\"c4612719232\">\n                            <ol start=\"861\" class=\"pre-context\" id=\"pre4612719232\">\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>                    ),</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>                )[&#x27;_order__max&#x27;]</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>            fields = meta.local_concrete_fields</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>            if not pk_set:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>                fields = [f for f in fields if f is not meta.auto_field]</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>            returning_fields = meta.db_returning_fields</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"868\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>            results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='869' class=\"post-context\" id=\"post4612719232\">\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>            if results:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>                for value, field in zip(results[0], returning_fields):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>                    setattr(self, field.attname, value)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>        return updated</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719232', 'post4612719232')\">\n                                    <pre>    def _do_update(self, base_qs, using, pk_val, values, update_fields, forced_update):</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612719232')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612719232\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>cls</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;auth_framework.models.SocialAccount&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>fields</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.related.ForeignKey: user&gt;,\n &lt;django.db.models.fields.CharField: provider&gt;,\n &lt;django.db.models.fields.CharField: uid&gt;,\n &lt;django.db.models.fields.DateTimeField: date_joined&gt;,\n &lt;django.db.models.fields.json.JSONField: extra_data&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>force_insert</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>force_update</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>meta</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;Options for SocialAccount&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>non_pks</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.related.ForeignKey: user&gt;,\n &lt;django.db.models.fields.CharField: provider&gt;,\n &lt;django.db.models.fields.CharField: uid&gt;,\n &lt;django.db.models.fields.DateTimeField: date_joined&gt;,\n &lt;django.db.models.fields.json.JSONField: extra_data&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>pk_set</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>pk_val</td>\n                                    <td class=\"code\">\n                                        <pre>None</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>raw</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>returning_fields</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.BigAutoField: id&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;SocialAccount: des2 - google&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>update_fields</td>\n                                    <td class=\"code\">\n                                        <pre>None</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>updated</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>using</td>\n                                    <td class=\"code\">\n                                        <pre>&#x27;default&#x27;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/models/base.py</code>, line 906, in _do_insert\n                        <div class=\"context\" id=\"c4612842048\">\n                            <ol start=\"899\" class=\"pre-context\" id=\"pre4612842048\">\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        return filtered._update(values) &gt; 0</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>    def _do_insert(self, manager, using, fields, returning_fields, raw):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        &quot;&quot;&quot;</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        Do an INSERT. If returning_fields is defined then this method should</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        return the newly created data for the model.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        &quot;&quot;&quot;</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"906\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        return manager._insert(</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='907' class=\"post-context\" id=\"post4612842048\">\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>            [self], fields=fields, returning_fields=returning_fields,</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>            using=using, raw=raw,</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        )</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>    def _prepare_related_fields_for_save(self, operation_name):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612842048', 'post4612842048')\">\n                                    <pre>        # Ensure that a model instance without a PK hasn&#x27;t been assigned to</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612842048')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612842048\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>fields</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.related.ForeignKey: user&gt;,\n &lt;django.db.models.fields.CharField: provider&gt;,\n &lt;django.db.models.fields.CharField: uid&gt;,\n &lt;django.db.models.fields.DateTimeField: date_joined&gt;,\n &lt;django.db.models.fields.json.JSONField: extra_data&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>manager</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.models.manager.Manager object at 0x112e69100&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>raw</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>returning_fields</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.BigAutoField: id&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;SocialAccount: des2 - google&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>using</td>\n                                    <td class=\"code\">\n                                        <pre>&#x27;default&#x27;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/models/manager.py</code>, line 85, in manager_method\n                        <div class=\"context\" id=\"c4612529216\">\n                            <ol start=\"78\" class=\"pre-context\" id=\"pre4612529216\">\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>    def check(self, **kwargs):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>        return []</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>    @classmethod</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>    def _get_queryset_methods(cls, queryset_class):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>        def create_method(name, method):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>            def manager_method(self, *args, **kwargs):</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"85\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>                return getattr(self.get_queryset(), name)(*args, **kwargs)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='86' class=\"post-context\" id=\"post4612529216\">\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>            manager_method.__name__ = method.__name__</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>            manager_method.__doc__ = method.__doc__</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>            return manager_method</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>        new_methods = {}</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612529216', 'post4612529216')\">\n                                    <pre>        for name, method in inspect.getmembers(queryset_class, predicate=inspect.isfunction):</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612529216')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612529216\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>args</td>\n                                    <td class=\"code\">\n                                        <pre>([&lt;SocialAccount: des2 - google&gt;],)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>kwargs</td>\n                                    <td class=\"code\">\n                                        <pre>{&#x27;fields&#x27;: [&lt;django.db.models.fields.related.ForeignKey: user&gt;,\n            &lt;django.db.models.fields.CharField: provider&gt;,\n            &lt;django.db.models.fields.CharField: uid&gt;,\n            &lt;django.db.models.fields.DateTimeField: date_joined&gt;,\n            &lt;django.db.models.fields.json.JSONField: extra_data&gt;],\n &#x27;raw&#x27;: False,\n &#x27;returning_fields&#x27;: [&lt;django.db.models.fields.BigAutoField: id&gt;],\n &#x27;using&#x27;: &#x27;default&#x27;}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>name</td>\n                                    <td class=\"code\">\n                                        <pre>&#x27;_insert&#x27;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.models.manager.Manager object at 0x112e69100&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/models/query.py</code>, line 1270, in _insert\n                        <div class=\"context\" id=\"c4612719168\">\n                            <ol start=\"1263\" class=\"pre-context\" id=\"pre4612719168\">\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        the InsertQuery class and is how Model.save() is implemented.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        &quot;&quot;&quot;</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        self._for_write = True</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        if using is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>            using = self.db</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        query = sql.InsertQuery(self.model, ignore_conflicts=ignore_conflicts)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        query.insert_values(fields, objs, raw=raw)</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"1270\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        return query.get_compiler(using=using).execute_sql(returning_fields)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='1271' class=\"post-context\" id=\"post4612719168\">\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>    _insert.alters_data = True</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>    _insert.queryset_only = False</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>    def _batched_insert(self, objs, fields, batch_size, ignore_conflicts=False):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        &quot;&quot;&quot;</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719168', 'post4612719168')\">\n                                    <pre>        Helper method for bulk_create() to insert objs one batch at a time.</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612719168')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612719168\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>fields</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.related.ForeignKey: user&gt;,\n &lt;django.db.models.fields.CharField: provider&gt;,\n &lt;django.db.models.fields.CharField: uid&gt;,\n &lt;django.db.models.fields.DateTimeField: date_joined&gt;,\n &lt;django.db.models.fields.json.JSONField: extra_data&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>ignore_conflicts</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>objs</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;SocialAccount: des2 - google&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>query</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.models.sql.subqueries.InsertQuery object at 0x112e69220&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>raw</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>returning_fields</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.BigAutoField: id&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;QuerySet [&lt;SocialAccount: de2 - google&gt;]&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>using</td>\n                                    <td class=\"code\">\n                                        <pre>&#x27;default&#x27;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/models/sql/compiler.py</code>, line 1416, in execute_sql\n                        <div class=\"context\" id=\"c4612680768\">\n                            <ol start=\"1409\" class=\"pre-context\" id=\"pre4612680768\">\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>        assert not (</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>            returning_fields and len(self.query.objs) != 1 and</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>            not self.connection.features.can_return_rows_from_bulk_insert</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>        )</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>        self.returning_fields = returning_fields</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>        with self.connection.cursor() as cursor:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>            for sql, params in self.as_sql():</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"1416\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>                cursor.execute(sql, params)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='1417' class=\"post-context\" id=\"post4612680768\">\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>            if not self.returning_fields:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>                return []</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>            if self.connection.features.can_return_rows_from_bulk_insert and len(self.query.objs) &gt; 1:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>                return self.connection.ops.fetch_returned_insert_rows(cursor)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>            if self.connection.features.can_return_columns_from_insert:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612680768', 'post4612680768')\">\n                                    <pre>                assert len(self.query.objs) == 1</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612680768')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612680768\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>cursor</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>returning_fields</td>\n                                    <td class=\"code\">\n                                        <pre>[&lt;django.db.models.fields.BigAutoField: id&gt;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.models.sql.compiler.SQLInsertCompiler object at 0x112e69c10&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>sql</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (%s, %s, %s, %s, %s)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py</code>, line 98, in execute\n                        <div class=\"context\" id=\"c4612721984\">\n                            <ol start=\"91\" class=\"pre-context\" id=\"pre4612721984\">\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>class CursorDebugWrapper(CursorWrapper):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>    # XXX callproc isn&#x27;t instrumented at this time.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>    def execute(self, sql, params=None):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>        with self.debug_sql(sql, params, use_last_executed_query=True):</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"98\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>            return super().execute(sql, params)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='99' class=\"post-context\" id=\"post4612721984\">\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>    def executemany(self, sql, param_list):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>        with self.debug_sql(sql, param_list, many=True):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>            return super().executemany(sql, param_list)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612721984', 'post4612721984')\">\n                                    <pre>    @contextmanager</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612721984')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612721984\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>__class__</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;django.db.backends.utils.CursorDebugWrapper&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>sql</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (%s, %s, %s, %s, %s)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py</code>, line 66, in execute\n                        <div class=\"context\" id=\"c4612681408\">\n                            <ol start=\"59\" class=\"pre-context\" id=\"pre4612681408\">\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>            elif kparams is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>                return self.cursor.callproc(procname, params)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>            else:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>                params = params or ()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>                return self.cursor.callproc(procname, params, kparams)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>    def execute(self, sql, params=None):</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"66\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>        return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='67' class=\"post-context\" id=\"post4612681408\">\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>    def executemany(self, sql, param_list):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>        return self._execute_with_wrappers(sql, param_list, many=True, executor=self._executemany)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>    def _execute_with_wrappers(self, sql, params, many, executor):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612681408', 'post4612681408')\">\n                                    <pre>        context = {&#x27;connection&#x27;: self.db, &#x27;cursor&#x27;: self}</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612681408')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612681408\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>sql</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (%s, %s, %s, %s, %s)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py</code>, line 75, in _execute_with_wrappers\n                        <div class=\"context\" id=\"c4612719552\">\n                            <ol start=\"68\" class=\"pre-context\" id=\"pre4612719552\">\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>    def executemany(self, sql, param_list):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>        return self._execute_with_wrappers(sql, param_list, many=True, executor=self._executemany)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>    def _execute_with_wrappers(self, sql, params, many, executor):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>        context = {&#x27;connection&#x27;: self.db, &#x27;cursor&#x27;: self}</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>        for wrapper in reversed(self.db.execute_wrappers):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>            executor = functools.partial(wrapper, executor)</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"75\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>        return executor(sql, params, many, context)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='76' class=\"post-context\" id=\"post4612719552\">\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>    def _execute(self, sql, params, *ignored_wrapper_args):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>        self.db.validate_no_broken_transaction()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>        with self.db.wrap_database_errors:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>            if params is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719552', 'post4612719552')\">\n                                    <pre>                # params default might be backend specific.</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612719552')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612719552\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>context</td>\n                                    <td class=\"code\">\n                                        <pre>{&#x27;connection&#x27;: &lt;django.db.backends.sqlite3.base.DatabaseWrapper object at 0x112f37100&gt;,\n &#x27;cursor&#x27;: &lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;}</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>executor</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;bound method CursorWrapper._execute of &lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>many</td>\n                                    <td class=\"code\">\n                                        <pre>False</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>sql</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (%s, %s, %s, %s, %s)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py</code>, line 84, in _execute\n                        <div class=\"context\" id=\"c4612766400\">\n                            <ol start=\"77\" class=\"pre-context\" id=\"pre4612766400\">\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>    def _execute(self, sql, params, *ignored_wrapper_args):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>        self.db.validate_no_broken_transaction()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>        with self.db.wrap_database_errors:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>            if params is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>                # params default might be backend specific.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>                return self.cursor.execute(sql)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>            else:</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"84\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>                return self.cursor.execute(sql, params)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='85' class=\"post-context\" id=\"post4612766400\">\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>    def _executemany(self, sql, param_list, *ignored_wrapper_args):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>        self.db.validate_no_broken_transaction()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>        with self.db.wrap_database_errors:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre>            return self.cursor.executemany(sql, param_list)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612766400', 'post4612766400')\">\n                                    <pre></pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612766400')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612766400\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>ignored_wrapper_args</td>\n                                    <td class=\"code\">\n                                        <pre>(False,\n {&#x27;connection&#x27;: &lt;django.db.backends.sqlite3.base.DatabaseWrapper object at 0x112f37100&gt;,\n  &#x27;cursor&#x27;: &lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;})</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>sql</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (%s, %s, %s, %s, %s)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/utils.py</code>, line 90, in __exit__\n                        <div class=\"context\" id=\"c4612767040\">\n                            <ol start=\"83\" class=\"pre-context\" id=\"pre4612767040\">\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>            db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>            if issubclass(exc_type, db_exc_type):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>                dj_exc_value = dj_exc_type(*exc_value.args)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>                # Only set the &#x27;errors_occurred&#x27; flag for errors that may make</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>                # the connection unusable.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>                if dj_exc_type not in (DataError, IntegrityError):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>                    self.wrapper.errors_occurred = True</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"90\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>                raise dj_exc_value.with_traceback(traceback) from exc_value</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='91' class=\"post-context\" id=\"post4612767040\">\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>    def __call__(self, func):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>        # Note that we are intentionally not using @wraps here for performance</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>        # reasons. Refs #21109.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>        def inner(*args, **kwargs):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612767040', 'post4612767040')\">\n                                    <pre>            with self:</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612767040')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612767040\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>db_exc_type</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;sqlite3.IntegrityError&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>dj_exc_type</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;django.db.utils.IntegrityError&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>dj_exc_value</td>\n                                    <td class=\"code\">\n                                        <pre>IntegrityError(&#x27;UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid&#x27;)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>exc_type</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;class &#x27;sqlite3.IntegrityError&#x27;&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>exc_value</td>\n                                    <td class=\"code\">\n                                        <pre>IntegrityError(&#x27;UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid&#x27;)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.utils.DatabaseErrorWrapper object at 0x112fc01f0&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>traceback</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;traceback object at 0x112f132c0&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py</code>, line 84, in _execute\n                        <div class=\"context\" id=\"c4612764352\">\n                            <ol start=\"77\" class=\"pre-context\" id=\"pre4612764352\">\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>    def _execute(self, sql, params, *ignored_wrapper_args):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        self.db.validate_no_broken_transaction()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        with self.db.wrap_database_errors:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>            if params is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>                # params default might be backend specific.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>                return self.cursor.execute(sql)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>            else:</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"84\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>                return self.cursor.execute(sql, params)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='85' class=\"post-context\" id=\"post4612764352\">\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>    def _executemany(self, sql, param_list, *ignored_wrapper_args):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        self.db.validate_no_broken_transaction()</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>        with self.db.wrap_database_errors:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre>            return self.cursor.executemany(sql, param_list)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612764352', 'post4612764352')\">\n                                    <pre></pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612764352')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612764352\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>ignored_wrapper_args</td>\n                                    <td class=\"code\">\n                                        <pre>(False,\n {&#x27;connection&#x27;: &lt;django.db.backends.sqlite3.base.DatabaseWrapper object at 0x112f37100&gt;,\n  &#x27;cursor&#x27;: &lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;})</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.utils.CursorDebugWrapper object at 0x112e69190&gt;</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>sql</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (%s, %s, %s, %s, %s)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                    <li class=\"frame django\">\n                        <code class=\"fname\">/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py</code>, line 423, in execute\n                        <div class=\"context\" id=\"c4612719744\">\n                            <ol start=\"416\" class=\"pre-context\" id=\"pre4612719744\">\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    This fixes it -- but note that if you want to use a literal &quot;%s&quot; in a query,</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    you&#x27;ll need to use &quot;%%s&quot;.</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    &quot;&quot;&quot;</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    def execute(self, query, params=None):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        if params is None:</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>            return Database.Cursor.execute(self, query)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        query = self.convert_query(query)</pre>\n                                </li>\n                            </ol>\n                            <ol start=\"423\" class=\"context-line\">\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        return Database.Cursor.execute(self, query, params)</pre>\n                                    <span>…</span>\n                                </li>\n                            </ol>\n                            <ol start='424' class=\"post-context\" id=\"post4612719744\">\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    def executemany(self, query, param_list):</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        query = self.convert_query(query)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>        return Database.Cursor.executemany(self, query, param_list)</pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre></pre>\n                                </li>\n                                <li onclick=\"toggle('pre4612719744', 'post4612719744')\">\n                                    <pre>    def convert_query(self, query):</pre>\n                                </li>\n                            </ol>\n                        </div>\n                        <div class=\"commands\">\n                            <a href=\"#\" onclick=\"return varToggle(this, '4612719744')\">\n                                <span>&#x25b6;</span> Local vars\n                            </a>\n                        </div>\n                        <table class=\"vars\" id=\"v4612719744\">\n                            <thead>\n                                <tr>\n                                    <th>Variable</th>\n                                    <th>Value</th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr>\n                                    <td>params</td>\n                                    <td class=\"code\">\n                                        <pre>[9,\n &#x27;google&#x27;,\n &#x27;123456789&#x27;,\n &#x27;2021-09-04 01:41:56.179254&#x27;,\n &#x27;{&quot;id&quot;: &quot;123456789&quot;, &quot;email&quot;: &quot;test@social.com&quot;, &quot;verified_email&quot;: true, &#x27;\n &#x27;&quot;name&quot;: &quot;fist last&quot;, &quot;given_name&quot;: &quot;first&quot;, &quot;family_name&quot;: &quot;last&quot;, &#x27;\n &#x27;&quot;picture&quot;: &quot;https://lh3.googleusercontent.com&quot;, &quot;locale&quot;: &quot;en&quot;}&#x27;]</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>query</td>\n                                    <td class=\"code\">\n                                        <pre>(&#x27;INSERT INTO &quot;auth_framework_socialaccount&quot; (&quot;user_id&quot;, &quot;provider&quot;, &quot;uid&quot;, &#x27;\n &#x27;&quot;date_joined&quot;, &quot;extra_data&quot;) VALUES (?, ?, ?, ?, ?)&#x27;)</pre>\n                                    </td>\n                                </tr>\n                                <tr>\n                                    <td>self</td>\n                                    <td class=\"code\">\n                                        <pre>&lt;django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x112fc2ca0&gt;</pre>\n                                    </td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </li>\n                </ul>\n            </div>\n            <form action=\"https://dpaste.com/\" name=\"pasteform\" id=\"pasteform\" method=\"post\">\n                <div id=\"pastebinTraceback\" class=\"pastebin\">\n                    <input type=\"hidden\" name=\"language\" value=\"PythonConsole\">\n                    <input type=\"hidden\" name=\"title\"\n      value=\"IntegrityError at /account/registration/\">\n                    <input type=\"hidden\" name=\"source\" value=\"Django Dpaste Agent\">\n                    <input type=\"hidden\" name=\"poster\" value=\"Django\">\n                    <textarea name=\"content\" id=\"traceback_area\" cols=\"140\" rows=\"25\">\nEnvironment:\n\n\nRequest Method: POST\nRequest URL: http://localhost:8000/account/registration/\n\nDjango Version: 3.2.7\nPython Version: 3.9.5\nInstalled Applications:\n[&#x27;django.contrib.admin&#x27;,\n &#x27;django.contrib.auth&#x27;,\n &#x27;django.contrib.contenttypes&#x27;,\n &#x27;django.contrib.sessions&#x27;,\n &#x27;django.contrib.messages&#x27;,\n &#x27;django.contrib.staticfiles&#x27;,\n &#x27;rest_framework&#x27;,\n &#x27;oauth2_provider&#x27;,\n &#x27;auth_framework&#x27;,\n &#x27;my_auth&#x27;]\nInstalled Middleware:\n[&#x27;django.middleware.security.SecurityMiddleware&#x27;,\n &#x27;django.contrib.sessions.middleware.SessionMiddleware&#x27;,\n &#x27;django.middleware.common.CommonMiddleware&#x27;,\n &#x27;django.middleware.csrf.CsrfViewMiddleware&#x27;,\n &#x27;django.contrib.auth.middleware.AuthenticationMiddleware&#x27;,\n &#x27;django.contrib.messages.middleware.MessageMiddleware&#x27;,\n &#x27;django.middleware.clickjacking.XFrameOptionsMiddleware&#x27;]\n\n\n\nTraceback (most recent call last):\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py\", line 84, in _execute\n    return self.cursor.execute(sql, params)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py\", line 423, in execute\n    return Database.Cursor.execute(self, query, params)\n\nThe above exception (UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid) was the direct cause of the following exception:\n  File \"/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py\", line 47, in inner\n    response = get_response(request)\n  File \"/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py\", line 181, in _get_response\n    response = wrapped_callback(request, *callback_args, **callback_kwargs)\n  File \"/usr/local/lib/python3.9/site-packages/django/views/decorators/csrf.py\", line 54, in wrapped_view\n    return view_func(*args, **kwargs)\n  File \"/usr/local/lib/python3.9/site-packages/django/views/generic/base.py\", line 70, in view\n    return self.dispatch(request, *args, **kwargs)\n  File \"/usr/local/lib/python3.9/site-packages/rest_framework/views.py\", line 509, in dispatch\n    response = self.handle_exception(exc)\n  File \"/usr/local/lib/python3.9/site-packages/rest_framework/views.py\", line 469, in handle_exception\n    self.raise_uncaught_exception(exc)\n  File \"/usr/local/lib/python3.9/site-packages/rest_framework/views.py\", line 480, in raise_uncaught_exception\n    raise exc\n  File \"/usr/local/lib/python3.9/site-packages/rest_framework/views.py\", line 506, in dispatch\n    response = handler(request, *args, **kwargs)\n  File \"/usr/local/lib/python3.9/site-packages/auth_framework/oauth/views.py\", line 83, in post\n    user = serializer.save()\n  File \"/usr/local/lib/python3.9/site-packages/auth_framework/social/serializers.py\", line 38, in save\n    self.social_adapter.save(connect_user=user)\n  File \"/usr/local/lib/python3.9/site-packages/auth_framework/social/providers/abstract_adapter.py\", line 151, in save\n    self.social_acct.save()\n  File \"/usr/local/lib/python3.9/site-packages/django/db/models/base.py\", line 726, in save\n    self.save_base(using=using, force_insert=force_insert,\n  File \"/usr/local/lib/python3.9/site-packages/django/db/models/base.py\", line 763, in save_base\n    updated = self._save_table(\n  File \"/usr/local/lib/python3.9/site-packages/django/db/models/base.py\", line 868, in _save_table\n    results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/models/base.py\", line 906, in _do_insert\n    return manager._insert(\n  File \"/usr/local/lib/python3.9/site-packages/django/db/models/manager.py\", line 85, in manager_method\n    return getattr(self.get_queryset(), name)(*args, **kwargs)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/models/query.py\", line 1270, in _insert\n    return query.get_compiler(using=using).execute_sql(returning_fields)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/models/sql/compiler.py\", line 1416, in execute_sql\n    cursor.execute(sql, params)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py\", line 98, in execute\n    return super().execute(sql, params)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py\", line 66, in execute\n    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py\", line 75, in _execute_with_wrappers\n    return executor(sql, params, many, context)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py\", line 84, in _execute\n    return self.cursor.execute(sql, params)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/utils.py\", line 90, in __exit__\n    raise dj_exc_value.with_traceback(traceback) from exc_value\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/utils.py\", line 84, in _execute\n    return self.cursor.execute(sql, params)\n  File \"/usr/local/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py\", line 423, in execute\n    return Database.Cursor.execute(self, query, params)\n\nException Type: IntegrityError at /account/registration/\nException Value: UNIQUE constraint failed: auth_framework_socialaccount.provider, auth_framework_socialaccount.uid\n</textarea>\n                    <br>\n                    <br>\n                    <input type=\"submit\" value=\"Share this traceback on a public website\">\n  \n                </div>\n            </form>\n        </div>\n        <div id=\"requestinfo\">\n            <h2>Request information</h2>\n            <h3 id=\"user-info\">USER</h3>\n            <p>AnonymousUser</p>\n            <h3 id=\"get-info\">GET</h3>\n            <p>No GET data</p>\n            <h3 id=\"post-info\">POST</h3>\n            <p>No POST data</p>\n            <h3 id=\"files-info\">FILES</h3>\n            <p>No FILES data</p>\n            <h3 id=\"cookie-info\">COOKIES</h3>\n            <table class=\"req\">\n                <thead>\n                    <tr>\n                        <th>Variable</th>\n                        <th>Value</th>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr>\n                        <td>csrftoken</td>\n                        <td class=\"code\">\n                            <pre>&#x27;diKniJrPvXsDULZCoiYb3pnB2mo6bt5KLZEyW68BATKq4RUtymVa8s8dwD3xTaWT&#x27;</pre>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n            <h3 id=\"meta-info\">META</h3>\n            <table class=\"req\">\n                <thead>\n                    <tr>\n                        <th>Variable</th>\n                        <th>Value</th>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr>\n                        <td>ANDROID_SDK_ROOT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/usr/local/share/android-sdk&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CONTENT_LENGTH</td>\n                        <td class=\"code\">\n                            <pre>&#x27;597&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CONTENT_TYPE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;application/json&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;diKniJrPvXsDULZCoiYb3pnB2mo6bt5KLZEyW68BATKq4RUtymVa8s8dwD3xTaWT&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DJANGO_SETTINGS_MODULE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;testauth.settings&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>GATEWAY_INTERFACE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;CGI/1.1&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>GOOGLE_CLIENT_ID</td>\n                        <td class=\"code\">\n                            <pre>&#x27;584436465289-koie2nj3a6r8cl9br86ispok0s4eob5g.apps.googleusercontent.com&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>GOOGLE_CLIENT_SECRET</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HOME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/Users/haolunchai&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_ACCEPT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;*/*&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_ACCEPT_ENCODING</td>\n                        <td class=\"code\">\n                            <pre>&#x27;gzip, deflate, br&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_CACHE_CONTROL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;no-cache&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_CONNECTION</td>\n                        <td class=\"code\">\n                            <pre>&#x27;keep-alive&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_COOKIE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;csrftoken=diKniJrPvXsDULZCoiYb3pnB2mo6bt5KLZEyW68BATKq4RUtymVa8s8dwD3xTaWT&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_HOST</td>\n                        <td class=\"code\">\n                            <pre>&#x27;localhost:8000&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_POSTMAN_TOKEN</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>HTTP_USER_AGENT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;PostmanRuntime/7.28.3&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>IDE_PROJECT_ROOTS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/Users/haolunchai/Acrossor/Lib/testauth&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>IPYTHONENABLE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;True&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LC_CTYPE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;en_CA.UTF-8&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LESS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;-R&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LIBRARY_ROOTS</td>\n                        <td class=\"code\">\n                            <pre>(&#x27;/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9:/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload:/usr/local/lib/python3.9/site-packages:/Users/haolunchai/Library/Caches/JetBrains/PyCharm2021.1/python_stubs/-1199943124:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/python-skeletons:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stdlib:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/jwt:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/six:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/mock:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/nmap:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/attrs:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/polib:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/retry:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/enum34:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/orjson:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/xxhash:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/chardet:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/futures:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/tzlocal:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/aiofiles:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/filelock:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/Markdown:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/paramiko:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/pathlib2:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/requests:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/waitress:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/Werkzeug:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/freezegun:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/ipaddress:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/pyRFC3339:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/typed-ast:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/cachetools:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/Deprecated:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/frozendict:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/contextvars:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/JACK-Client:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/atomicwrites:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/cryptography:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/click-spinner:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/DateTimeRange:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/pkg_resources:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/python-gflags:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/python-slugify:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/python-dateutil:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/typeshed/stubs/typing-extensions&#x27;)</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOGNAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;haolunchai&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LSCOLORS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;Gxfxcxdxbxegedabagacad&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>OLDPWD</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PAGER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;less&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PATH</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/usr/local/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/android-sdk/emulator:/usr/local/share/android-sdk/tools:/usr/local/share/android-sdk/tools/bin:/usr/local/share/android-sdk/platform-tools&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PATH_INFO</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/account/registration/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PWD</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/Users/haolunchai/Acrossor/Lib/testauth&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PYCHARM_DISPLAY_PORT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;63342&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PYCHARM_HOSTED</td>\n                        <td class=\"code\">\n                            <pre>&#x27;1&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PYDEVD_LOAD_VALUES_ASYNC</td>\n                        <td class=\"code\">\n                            <pre>&#x27;True&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PYTHONDONTWRITEBYTECODE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;1&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PYTHONIOENCODING</td>\n                        <td class=\"code\">\n                            <pre>&#x27;UTF-8&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PYTHONPATH</td>\n                        <td class=\"code\">\n                            <pre>(&#x27;/Users/haolunchai/Acrossor/Lib/testauth:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/pycharm_matplotlib_backend:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/pycharm_display:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/third_party/thriftpy:/Users/haolunchai/Library/Application &#x27;\n &#x27;Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/211.6693.115/PyCharm.app/Contents/plugins/python/helpers/pydev:/Users/haolunchai/Library/Caches/JetBrains/PyCharm2021.1/cythonExtensions:/Users/haolunchai/Acrossor/Lib/testauth&#x27;)</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PYTHONUNBUFFERED</td>\n                        <td class=\"code\">\n                            <pre>&#x27;1&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>QUERY_STRING</td>\n                        <td class=\"code\">\n                            <pre>&#x27;&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>REMOTE_ADDR</td>\n                        <td class=\"code\">\n                            <pre>&#x27;127.0.0.1&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>REMOTE_HOST</td>\n                        <td class=\"code\">\n                            <pre>&#x27;&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>REQUEST_METHOD</td>\n                        <td class=\"code\">\n                            <pre>&#x27;POST&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>RUN_MAIN</td>\n                        <td class=\"code\">\n                            <pre>&#x27;true&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SCRIPT_NAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SERVER_NAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;1.0.0.127.in-addr.arpa&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SERVER_PORT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;8000&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SERVER_PROTOCOL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;HTTP/1.1&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SERVER_SOFTWARE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;WSGIServer/0.2&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SHELL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/bin/zsh&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SSH_AUTH_SOCK</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/private/tmp/com.apple.launchd.rm65RW3SIa/Listeners&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TMPDIR</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/var/folders/js/036mdttx3xd9s264h9xnphr80000gn/T/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TOOLBOX_VERSION</td>\n                        <td class=\"code\">\n                            <pre>&#x27;1.21.9712&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TZ</td>\n                        <td class=\"code\">\n                            <pre>&#x27;UTC&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>USER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;haolunchai&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>VERSIONER_PYTHON_VERSION</td>\n                        <td class=\"code\">\n                            <pre>&#x27;2.7&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>XPC_FLAGS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;0x0&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>XPC_SERVICE_NAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;com.jetbrains.pycharm.30108.F9494E3A-840B-4815-8353-683E4FDAF37B&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>ZSH</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/Users/haolunchai/.oh-my-zsh&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>__CF_USER_TEXT_ENCODING</td>\n                        <td class=\"code\">\n                            <pre>&#x27;0x1F5:0x0:0x52&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.errors</td>\n                        <td class=\"code\">\n                            <pre>&lt;_io.TextIOWrapper name=&#x27;&lt;stderr&gt;&#x27; mode=&#x27;w&#x27; encoding=&#x27;utf-8&#x27;&gt;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.file_wrapper</td>\n                        <td class=\"code\">\n                            <pre>&lt;class &#x27;wsgiref.util.FileWrapper&#x27;&gt;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.input</td>\n                        <td class=\"code\">\n                            <pre>&lt;django.core.handlers.wsgi.LimitedStream object at 0x112e616d0&gt;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.multiprocess</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.multithread</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.run_once</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.url_scheme</td>\n                        <td class=\"code\">\n                            <pre>&#x27;http&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>wsgi.version</td>\n                        <td class=\"code\">\n                            <pre>(1, 0)</pre>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n            <h3 id=\"settings-info\">Settings</h3>\n            <h4>Using settings module \n                <code>testauth.settings</code>\n            </h4>\n            <table class=\"req\">\n                <thead>\n                    <tr>\n                        <th>Setting</th>\n                        <th>Value</th>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr>\n                        <td>ABSOLUTE_URL_OVERRIDES</td>\n                        <td class=\"code\">\n                            <pre>{}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>ADMINS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>ALLOWED_HOSTS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>APPEND_SLASH</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>AUTHENTICATION_BACKENDS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;auth_framework.backends.auth_backends.AuthenticationBackend&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>AUTH_FRAMEWORK</td>\n                        <td class=\"code\">\n                            <pre>{&#x27;SERIALIZERS&#x27;: {&#x27;SIGNUP_SERIALIZER&#x27;: &#x27;my_auth.serializers.TestUserCreationSerializer&#x27;,\n                 &#x27;USERINFO_SERIALIZER&#x27;: &#x27;my_auth.serializers.TestUserInfoSerializer&#x27;},\n &#x27;SOCIAL_CALLBACK_URL&#x27;: &#x27;https://developers.google.com/oauthplayground&#x27;,\n &#x27;USE_PASSWORD_TWICE_VALIDATION&#x27;: &#x27;********************&#x27;,\n &#x27;USE_PHONENUMBER_FIELD&#x27;: False}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>AUTH_PASSWORD_VALIDATORS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>AUTH_USER_MODEL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;my_auth.MyUser&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>BASE_DIR</td>\n                        <td class=\"code\">\n                            <pre>PosixPath(&#x27;/Users/haolunchai/Acrossor/Lib/testauth&#x27;)</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CACHES</td>\n                        <td class=\"code\">\n                            <pre>{&#x27;default&#x27;: {&#x27;BACKEND&#x27;: &#x27;django.core.cache.backends.locmem.LocMemCache&#x27;}}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CACHE_MIDDLEWARE_ALIAS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;default&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CACHE_MIDDLEWARE_SECONDS</td>\n                        <td class=\"code\">\n                            <pre>600</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE_AGE</td>\n                        <td class=\"code\">\n                            <pre>31449600</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE_DOMAIN</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE_HTTPONLY</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE_NAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;csrftoken&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE_PATH</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE_SAMESITE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;Lax&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_COOKIE_SECURE</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_FAILURE_VIEW</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.views.csrf.csrf_failure&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_HEADER_NAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;HTTP_X_CSRFTOKEN&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_TRUSTED_ORIGINS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>CSRF_USE_SESSIONS</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATABASES</td>\n                        <td class=\"code\">\n                            <pre>{&#x27;default&#x27;: {&#x27;ATOMIC_REQUESTS&#x27;: False,\n             &#x27;AUTOCOMMIT&#x27;: True,\n             &#x27;CONN_MAX_AGE&#x27;: 0,\n             &#x27;ENGINE&#x27;: &#x27;django.db.backends.sqlite3&#x27;,\n             &#x27;HOST&#x27;: &#x27;&#x27;,\n             &#x27;NAME&#x27;: PosixPath(&#x27;/Users/haolunchai/Acrossor/Lib/testauth/db.sqlite3&#x27;),\n             &#x27;OPTIONS&#x27;: {},\n             &#x27;PASSWORD&#x27;: &#x27;********************&#x27;,\n             &#x27;PORT&#x27;: &#x27;&#x27;,\n             &#x27;TEST&#x27;: {&#x27;CHARSET&#x27;: None,\n                      &#x27;COLLATION&#x27;: None,\n                      &#x27;MIGRATE&#x27;: True,\n                      &#x27;MIRROR&#x27;: None,\n                      &#x27;NAME&#x27;: None},\n             &#x27;TIME_ZONE&#x27;: None,\n             &#x27;USER&#x27;: &#x27;&#x27;}}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATABASE_ROUTERS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATA_UPLOAD_MAX_MEMORY_SIZE</td>\n                        <td class=\"code\">\n                            <pre>2621440</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td>\n                        <td class=\"code\">\n                            <pre>1000</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATETIME_FORMAT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;N j, Y, P&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATETIME_INPUT_FORMATS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;%Y-%m-%d %H:%M:%S&#x27;,\n &#x27;%Y-%m-%d %H:%M:%S.%f&#x27;,\n &#x27;%Y-%m-%d %H:%M&#x27;,\n &#x27;%m/%d/%Y %H:%M:%S&#x27;,\n &#x27;%m/%d/%Y %H:%M:%S.%f&#x27;,\n &#x27;%m/%d/%Y %H:%M&#x27;,\n &#x27;%m/%d/%y %H:%M:%S&#x27;,\n &#x27;%m/%d/%y %H:%M:%S.%f&#x27;,\n &#x27;%m/%d/%y %H:%M&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATE_FORMAT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;N j, Y&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DATE_INPUT_FORMATS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;%Y-%m-%d&#x27;,\n &#x27;%m/%d/%Y&#x27;,\n &#x27;%m/%d/%y&#x27;,\n &#x27;%b %d %Y&#x27;,\n &#x27;%b %d, %Y&#x27;,\n &#x27;%d %b %Y&#x27;,\n &#x27;%d %b, %Y&#x27;,\n &#x27;%B %d %Y&#x27;,\n &#x27;%B %d, %Y&#x27;,\n &#x27;%d %B %Y&#x27;,\n &#x27;%d %B, %Y&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEBUG</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEBUG_PROPAGATE_EXCEPTIONS</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DECIMAL_SEPARATOR</td>\n                        <td class=\"code\">\n                            <pre>&#x27;.&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_AUTO_FIELD</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.db.models.BigAutoField&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_CHARSET</td>\n                        <td class=\"code\">\n                            <pre>&#x27;utf-8&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_EXCEPTION_REPORTER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.views.debug.ExceptionReporter&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.views.debug.SafeExceptionReporterFilter&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_FILE_STORAGE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.core.files.storage.FileSystemStorage&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_FROM_EMAIL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;info@acrossor.com&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_HASHING_ALGORITHM</td>\n                        <td class=\"code\">\n                            <pre>&#x27;sha256&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_INDEX_TABLESPACE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DEFAULT_TABLESPACE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>DISALLOWED_USER_AGENTS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_BACKEND</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.core.mail.backends.smtp.EmailBackend&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_HOST</td>\n                        <td class=\"code\">\n                            <pre>&#x27;smtp.zoho.com&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_HOST_PASSWORD</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_HOST_USER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;info@acrossor.com&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_PORT</td>\n                        <td class=\"code\">\n                            <pre>587</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_SSL_CERTFILE</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_SSL_KEYFILE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_SUBJECT_PREFIX</td>\n                        <td class=\"code\">\n                            <pre>&#x27;[Django] &#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_TIMEOUT</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_USE_LOCALTIME</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_USE_SSL</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>EMAIL_USE_TLS</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FILE_UPLOAD_HANDLERS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;django.core.files.uploadhandler.MemoryFileUploadHandler&#x27;,\n &#x27;django.core.files.uploadhandler.TemporaryFileUploadHandler&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>\n                        <td class=\"code\">\n                            <pre>2621440</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FILE_UPLOAD_PERMISSIONS</td>\n                        <td class=\"code\">\n                            <pre>420</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FILE_UPLOAD_TEMP_DIR</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FIRST_DAY_OF_WEEK</td>\n                        <td class=\"code\">\n                            <pre>0</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FIXTURE_DIRS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FORCE_SCRIPT_NAME</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FORMAT_MODULE_PATH</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>FORM_RENDERER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.forms.renderers.DjangoTemplates&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>IGNORABLE_404_URLS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>INSTALLED_APPS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;django.contrib.admin&#x27;,\n &#x27;django.contrib.auth&#x27;,\n &#x27;django.contrib.contenttypes&#x27;,\n &#x27;django.contrib.sessions&#x27;,\n &#x27;django.contrib.messages&#x27;,\n &#x27;django.contrib.staticfiles&#x27;,\n &#x27;rest_framework&#x27;,\n &#x27;oauth2_provider&#x27;,\n &#x27;auth_framework&#x27;,\n &#x27;my_auth&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>INTERNAL_IPS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGES</td>\n                        <td class=\"code\">\n                            <pre>[(&#x27;af&#x27;, &#x27;Afrikaans&#x27;),\n (&#x27;ar&#x27;, &#x27;Arabic&#x27;),\n (&#x27;ar-dz&#x27;, &#x27;Algerian Arabic&#x27;),\n (&#x27;ast&#x27;, &#x27;Asturian&#x27;),\n (&#x27;az&#x27;, &#x27;Azerbaijani&#x27;),\n (&#x27;bg&#x27;, &#x27;Bulgarian&#x27;),\n (&#x27;be&#x27;, &#x27;Belarusian&#x27;),\n (&#x27;bn&#x27;, &#x27;Bengali&#x27;),\n (&#x27;br&#x27;, &#x27;Breton&#x27;),\n (&#x27;bs&#x27;, &#x27;Bosnian&#x27;),\n (&#x27;ca&#x27;, &#x27;Catalan&#x27;),\n (&#x27;cs&#x27;, &#x27;Czech&#x27;),\n (&#x27;cy&#x27;, &#x27;Welsh&#x27;),\n (&#x27;da&#x27;, &#x27;Danish&#x27;),\n (&#x27;de&#x27;, &#x27;German&#x27;),\n (&#x27;dsb&#x27;, &#x27;Lower Sorbian&#x27;),\n (&#x27;el&#x27;, &#x27;Greek&#x27;),\n (&#x27;en&#x27;, &#x27;English&#x27;),\n (&#x27;en-au&#x27;, &#x27;Australian English&#x27;),\n (&#x27;en-gb&#x27;, &#x27;British English&#x27;),\n (&#x27;eo&#x27;, &#x27;Esperanto&#x27;),\n (&#x27;es&#x27;, &#x27;Spanish&#x27;),\n (&#x27;es-ar&#x27;, &#x27;Argentinian Spanish&#x27;),\n (&#x27;es-co&#x27;, &#x27;Colombian Spanish&#x27;),\n (&#x27;es-mx&#x27;, &#x27;Mexican Spanish&#x27;),\n (&#x27;es-ni&#x27;, &#x27;Nicaraguan Spanish&#x27;),\n (&#x27;es-ve&#x27;, &#x27;Venezuelan Spanish&#x27;),\n (&#x27;et&#x27;, &#x27;Estonian&#x27;),\n (&#x27;eu&#x27;, &#x27;Basque&#x27;),\n (&#x27;fa&#x27;, &#x27;Persian&#x27;),\n (&#x27;fi&#x27;, &#x27;Finnish&#x27;),\n (&#x27;fr&#x27;, &#x27;French&#x27;),\n (&#x27;fy&#x27;, &#x27;Frisian&#x27;),\n (&#x27;ga&#x27;, &#x27;Irish&#x27;),\n (&#x27;gd&#x27;, &#x27;Scottish Gaelic&#x27;),\n (&#x27;gl&#x27;, &#x27;Galician&#x27;),\n (&#x27;he&#x27;, &#x27;Hebrew&#x27;),\n (&#x27;hi&#x27;, &#x27;Hindi&#x27;),\n (&#x27;hr&#x27;, &#x27;Croatian&#x27;),\n (&#x27;hsb&#x27;, &#x27;Upper Sorbian&#x27;),\n (&#x27;hu&#x27;, &#x27;Hungarian&#x27;),\n (&#x27;hy&#x27;, &#x27;Armenian&#x27;),\n (&#x27;ia&#x27;, &#x27;Interlingua&#x27;),\n (&#x27;id&#x27;, &#x27;Indonesian&#x27;),\n (&#x27;ig&#x27;, &#x27;Igbo&#x27;),\n (&#x27;io&#x27;, &#x27;Ido&#x27;),\n (&#x27;is&#x27;, &#x27;Icelandic&#x27;),\n (&#x27;it&#x27;, &#x27;Italian&#x27;),\n (&#x27;ja&#x27;, &#x27;Japanese&#x27;),\n (&#x27;ka&#x27;, &#x27;Georgian&#x27;),\n (&#x27;kab&#x27;, &#x27;Kabyle&#x27;),\n (&#x27;kk&#x27;, &#x27;Kazakh&#x27;),\n (&#x27;km&#x27;, &#x27;Khmer&#x27;),\n (&#x27;kn&#x27;, &#x27;Kannada&#x27;),\n (&#x27;ko&#x27;, &#x27;Korean&#x27;),\n (&#x27;ky&#x27;, &#x27;Kyrgyz&#x27;),\n (&#x27;lb&#x27;, &#x27;Luxembourgish&#x27;),\n (&#x27;lt&#x27;, &#x27;Lithuanian&#x27;),\n (&#x27;lv&#x27;, &#x27;Latvian&#x27;),\n (&#x27;mk&#x27;, &#x27;Macedonian&#x27;),\n (&#x27;ml&#x27;, &#x27;Malayalam&#x27;),\n (&#x27;mn&#x27;, &#x27;Mongolian&#x27;),\n (&#x27;mr&#x27;, &#x27;Marathi&#x27;),\n (&#x27;my&#x27;, &#x27;Burmese&#x27;),\n (&#x27;nb&#x27;, &#x27;Norwegian Bokmål&#x27;),\n (&#x27;ne&#x27;, &#x27;Nepali&#x27;),\n (&#x27;nl&#x27;, &#x27;Dutch&#x27;),\n (&#x27;nn&#x27;, &#x27;Norwegian Nynorsk&#x27;),\n (&#x27;os&#x27;, &#x27;Ossetic&#x27;),\n (&#x27;pa&#x27;, &#x27;Punjabi&#x27;),\n (&#x27;pl&#x27;, &#x27;Polish&#x27;),\n (&#x27;pt&#x27;, &#x27;Portuguese&#x27;),\n (&#x27;pt-br&#x27;, &#x27;Brazilian Portuguese&#x27;),\n (&#x27;ro&#x27;, &#x27;Romanian&#x27;),\n (&#x27;ru&#x27;, &#x27;Russian&#x27;),\n (&#x27;sk&#x27;, &#x27;Slovak&#x27;),\n (&#x27;sl&#x27;, &#x27;Slovenian&#x27;),\n (&#x27;sq&#x27;, &#x27;Albanian&#x27;),\n (&#x27;sr&#x27;, &#x27;Serbian&#x27;),\n (&#x27;sr-latn&#x27;, &#x27;Serbian Latin&#x27;),\n (&#x27;sv&#x27;, &#x27;Swedish&#x27;),\n (&#x27;sw&#x27;, &#x27;Swahili&#x27;),\n (&#x27;ta&#x27;, &#x27;Tamil&#x27;),\n (&#x27;te&#x27;, &#x27;Telugu&#x27;),\n (&#x27;tg&#x27;, &#x27;Tajik&#x27;),\n (&#x27;th&#x27;, &#x27;Thai&#x27;),\n (&#x27;tk&#x27;, &#x27;Turkmen&#x27;),\n (&#x27;tr&#x27;, &#x27;Turkish&#x27;),\n (&#x27;tt&#x27;, &#x27;Tatar&#x27;),\n (&#x27;udm&#x27;, &#x27;Udmurt&#x27;),\n (&#x27;uk&#x27;, &#x27;Ukrainian&#x27;),\n (&#x27;ur&#x27;, &#x27;Urdu&#x27;),\n (&#x27;uz&#x27;, &#x27;Uzbek&#x27;),\n (&#x27;vi&#x27;, &#x27;Vietnamese&#x27;),\n (&#x27;zh-hans&#x27;, &#x27;Simplified Chinese&#x27;),\n (&#x27;zh-hant&#x27;, &#x27;Traditional Chinese&#x27;)]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGES_BIDI</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;he&#x27;, &#x27;ar&#x27;, &#x27;ar-dz&#x27;, &#x27;fa&#x27;, &#x27;ur&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_CODE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;en-us&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_COOKIE_AGE</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_COOKIE_DOMAIN</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_COOKIE_HTTPONLY</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_COOKIE_NAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django_language&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_COOKIE_PATH</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_COOKIE_SAMESITE</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LANGUAGE_COOKIE_SECURE</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOCALE_PATHS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOCAL_APPS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;my_auth&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOGGING</td>\n                        <td class=\"code\">\n                            <pre>{}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOGGING_CONFIG</td>\n                        <td class=\"code\">\n                            <pre>&#x27;logging.config.dictConfig&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOGIN_REDIRECT_URL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/accounts/profile/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOGIN_URL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/accounts/login/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>LOGOUT_REDIRECT_URL</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>MANAGERS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>MEDIA_ROOT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>MEDIA_URL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>MESSAGE_STORAGE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.contrib.messages.storage.fallback.FallbackStorage&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>MIDDLEWARE</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;django.middleware.security.SecurityMiddleware&#x27;,\n &#x27;django.contrib.sessions.middleware.SessionMiddleware&#x27;,\n &#x27;django.middleware.common.CommonMiddleware&#x27;,\n &#x27;django.middleware.csrf.CsrfViewMiddleware&#x27;,\n &#x27;django.contrib.auth.middleware.AuthenticationMiddleware&#x27;,\n &#x27;django.contrib.messages.middleware.MessageMiddleware&#x27;,\n &#x27;django.middleware.clickjacking.XFrameOptionsMiddleware&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>MIGRATION_MODULES</td>\n                        <td class=\"code\">\n                            <pre>{}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>MONTH_DAY_FORMAT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;F j&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>NUMBER_GROUPING</td>\n                        <td class=\"code\">\n                            <pre>0</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>OAUTH2_PROVIDER</td>\n                        <td class=\"code\">\n                            <pre>{&#x27;OAUTH2_BACKEND_CLASS&#x27;: &#x27;auth_framework.oauth.oauth2_backends.OAuthLibCore&#x27;,\n &#x27;OAUTH2_VALIDATOR_CLASS&#x27;: &#x27;auth_framework.oauth.oauth2_validators.OauthValidator&#x27;,\n &#x27;OIDC_ENABLED&#x27;: True,\n &#x27;OIDC_RSA_PRIVATE_KEY&#x27;: &#x27;********************&#x27;,\n &#x27;SCOPES&#x27;: {&#x27;openid&#x27;: &#x27;OpenID Connect scope&#x27;,\n            &#x27;read&#x27;: &#x27;Read scope&#x27;,\n            &#x27;write&#x27;: &#x27;Write scope&#x27;}}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PASSWORD_HASHERS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PASSWORD_RESET_TIMEOUT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PASSWORD_RESET_TIMEOUT_DAYS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>PREPEND_WWW</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>REQUIRED_APPS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;rest_framework&#x27;, &#x27;oauth2_provider&#x27;, &#x27;auth_framework&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>REST_FRAMEWORK</td>\n                        <td class=\"code\">\n                            <pre>{&#x27;DEFAULT_AUTHENTICATION_CLASSES&#x27;: (&#x27;oauth2_provider.contrib.rest_framework.OAuth2Authentication&#x27;,\n                                    &#x27;rest_framework.authentication.SessionAuthentication&#x27;)}</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>ROOT_URLCONF</td>\n                        <td class=\"code\">\n                            <pre>&#x27;testauth.urls&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECRET_KEY</td>\n                        <td class=\"code\">\n                            <pre>&#x27;********************&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_BROWSER_XSS_FILTER</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_CONTENT_TYPE_NOSNIFF</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_HSTS_PRELOAD</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_HSTS_SECONDS</td>\n                        <td class=\"code\">\n                            <pre>0</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_PROXY_SSL_HEADER</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_REDIRECT_EXEMPT</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_REFERRER_POLICY</td>\n                        <td class=\"code\">\n                            <pre>&#x27;same-origin&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_SSL_HOST</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SECURE_SSL_REDIRECT</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SERVER_EMAIL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;root@localhost&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_CACHE_ALIAS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;default&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_COOKIE_AGE</td>\n                        <td class=\"code\">\n                            <pre>1209600</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_COOKIE_DOMAIN</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_COOKIE_HTTPONLY</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_COOKIE_NAME</td>\n                        <td class=\"code\">\n                            <pre>&#x27;sessionid&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_COOKIE_PATH</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_COOKIE_SAMESITE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;Lax&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_COOKIE_SECURE</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_ENGINE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.contrib.sessions.backends.db&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_FILE_PATH</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_SAVE_EVERY_REQUEST</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SESSION_SERIALIZER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.contrib.sessions.serializers.JSONSerializer&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SETTINGS_MODULE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;testauth.settings&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SHORT_DATETIME_FORMAT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;m/d/Y P&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SHORT_DATE_FORMAT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;m/d/Y&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SIGNING_BACKEND</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.core.signing.TimestampSigner&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>SILENCED_SYSTEM_CHECKS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>STATICFILES_DIRS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>STATICFILES_FINDERS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;django.contrib.staticfiles.finders.FileSystemFinder&#x27;,\n &#x27;django.contrib.staticfiles.finders.AppDirectoriesFinder&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>STATICFILES_STORAGE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.contrib.staticfiles.storage.StaticFilesStorage&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>STATIC_ROOT</td>\n                        <td class=\"code\">\n                            <pre>None</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>STATIC_URL</td>\n                        <td class=\"code\">\n                            <pre>&#x27;/static/&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TEMPLATES</td>\n                        <td class=\"code\">\n                            <pre>[{&#x27;APP_DIRS&#x27;: True,\n  &#x27;BACKEND&#x27;: &#x27;django.template.backends.django.DjangoTemplates&#x27;,\n  &#x27;DIRS&#x27;: [],\n  &#x27;OPTIONS&#x27;: {&#x27;context_processors&#x27;: [&#x27;django.template.context_processors.debug&#x27;,\n                                     &#x27;django.template.context_processors.request&#x27;,\n                                     &#x27;django.contrib.auth.context_processors.auth&#x27;,\n                                     &#x27;django.contrib.messages.context_processors.messages&#x27;]}}]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TEST_NON_SERIALIZED_APPS</td>\n                        <td class=\"code\">\n                            <pre>[]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TEST_RUNNER</td>\n                        <td class=\"code\">\n                            <pre>&#x27;django.test.runner.DiscoverRunner&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>THOUSAND_SEPARATOR</td>\n                        <td class=\"code\">\n                            <pre>&#x27;,&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TIME_FORMAT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;P&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TIME_INPUT_FORMATS</td>\n                        <td class=\"code\">\n                            <pre>[&#x27;%H:%M:%S&#x27;, &#x27;%H:%M:%S.%f&#x27;, &#x27;%H:%M&#x27;]</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>TIME_ZONE</td>\n                        <td class=\"code\">\n                            <pre>&#x27;UTC&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>USE_I18N</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>USE_L10N</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>USE_THOUSAND_SEPARATOR</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>USE_TZ</td>\n                        <td class=\"code\">\n                            <pre>True</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>USE_X_FORWARDED_HOST</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>USE_X_FORWARDED_PORT</td>\n                        <td class=\"code\">\n                            <pre>False</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>WSGI_APPLICATION</td>\n                        <td class=\"code\">\n                            <pre>&#x27;testauth.wsgi.application&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>X_FRAME_OPTIONS</td>\n                        <td class=\"code\">\n                            <pre>&#x27;DENY&#x27;</pre>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td>YEAR_MONTH_FORMAT</td>\n                        <td class=\"code\">\n                            <pre>&#x27;F Y&#x27;</pre>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </div>\n        <div id=\"explanation\">\n            <p>\n      You’re seeing this error because you have \n                <code>DEBUG = True</code> in your\n      Django settings file. Change that to\n                <code>False</code>, and Django will\n      display a standard page generated by the handler for this status code.\n            </p>\n        </div>\n    </body>\n</html>"}],"_postman_id":"2dc14b2b-da3c-405a-95a2-638a118134dc"},{"name":"Misc.: Verify Email","id":"c80d6ddf-035f-4380-b25f-eacae8f486df","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"dev@auth.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/email-verify/","urlObject":{"path":["account","email-verify",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"4cad0b66-d3a9-4d6f-8331-574c768520c8","name":"200 - Verify Email","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"dev@auth.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/email-verify/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 23 Jul 2021 04:12:37 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Origin, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"5"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"false"}],"_postman_id":"c80d6ddf-035f-4380-b25f-eacae8f486df"}],"id":"0fb5c726-b668-48e7-8325-f2a1216224dd","_postman_id":"0fb5c726-b668-48e7-8325-f2a1216224dd","description":""},{"name":"Proctected User Resources","item":[{"name":"Get Userinfo","id":"a5c727ed-3126-41d2-820f-e240cb093363","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"{{base_url}}/account/self/","urlObject":{"path":["account","self",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"be678c1f-775e-41b1-977b-a2794d64e265","name":"200 - get user from custom userinfo serializer","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/account/self/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:04:46 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, PUT, PATCH, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"72"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"first_name\": \"\",\n    \"last_name\": \"\",\n    \"email\": \"dev@auth.com\",\n    \"username\": \"dev\"\n}"},{"id":"ac03647b-5c02-496f-b980-0122f637d8ed","name":"200 - get default userinfo","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer Eaho66VLtUvp02yFKQKuclt7cy0lSV","type":"text"}],"url":"{{base_url}}/account/self/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:13:58 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, PUT, PATCH, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"55"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"first_name\": \"\",\n    \"last_name\": \"\",\n    \"email\": \"dev@auth.com\"\n}"},{"id":"6bf1fef1-dfcf-417b-a8a7-6461ecf807df","name":"200 - get unprotected read-only userinfo by pk","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/account/1/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:26:09 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, PUT, PATCH, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"61"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"first_name\": \"ed\",\n    \"last_name\": \"test\",\n    \"email\": \"dev@auth.com\"\n}"},{"id":"9bb0e493-d790-403c-bd5e-4969fad0ee27","name":"403 - update a user not self","originalRequest":{"method":"PATCH","header":[],"url":"{{base_url}}/account/2/"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:47:07 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, PUT, PATCH, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"63"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"You do not have permission to perform this action.\"\n}"},{"id":"caec9259-aadb-4e12-9ec8-3e9285f8781c","name":"200 - using JWT","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer eyJ0eXAiOiAiSldUIiwgImFsZyI6ICJSUzI1NiIsICJraWQiOiAiekZIVnNNOWRjNE9sSEl3dkVuVnFmS3pSajF1anFZR3NablhBY2duX0NxSSJ9.eyJhdWQiOiAiZmFrZV9jbGllbnRfaWQiLCAiaWF0IjogMTYzMDcxNzEwNSwgInN1YiI6ICIxIiwgImVtYWlsIjogImRldkBhdXRoLmNvbSIsICJsYXN0X25hbWUiOiAidGVzdCIsICJmaXJzdF9uYW1lIjogImVkIiwgImlzcyI6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvYWNjb3VudC9vYXV0aCIsICJleHAiOiAxNjMwNzUzMTA1LCAianRpIjogIjk1MDNhYjAxLTI3YTMtNDI0Zi05ZDYzLTIxYzEzNzc5MTY4OCJ9.YnUsmRL14zLe4fZ6Lrp63fH2Bx08sAA3dDoH69YVKxPSBpm2l0-uT9UTZ_BIe-pKRL8193MfSZ8em7zcQwv1zTO8DWHZgA4E3SSFNOuq8ugibYwLIJ7RhO-cfPbwfebB59KiKvjCZHEltd_ko_v_140NIScCUq-D9ZWcXk_x_nVY_VnVhtUgxGw-dPUn5R07sc6P_ezrMUSzX1WRRK0oMYTQ-d8iTovO7h3zQWz8lGx1Sc-d3HLRWKJG0joyaxnr-d8wedVc8_5ZXof358_pOjXDwvGHTKkl95mzP7rDPzogKDncXof2mFwVLWUOgyIC2J9WKB_u51egB-ejUW_jvQ","type":"text"}],"url":"{{base_url}}/account/self/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:58:38 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, PUT, PATCH, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"78"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"first_name\": \"ed\",\n    \"last_name\": \"test\",\n    \"email\": \"dev@auth.com\",\n    \"username\": \"dev\"\n}"}],"_postman_id":"a5c727ed-3126-41d2-820f-e240cb093363"},{"name":"Update User profile","id":"da0a6379-3708-45e8-bef3-0e9d1f35828d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"ed\",\n    \"last_name\": \"test\"\n}\n"},"url":"{{base_url}}/account/self/","urlObject":{"path":["account","self",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"8b6fff03-1e92-4370-b1ea-c5a7057dc09c","name":"401 - missing token","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"ed\",\n    \"last_name\": \"test\"\n}\n"},"url":"{{base_url}}/account/self/"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:15:59 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"WWW-Authenticate","value":"Bearer realm=\"api\",error=\"invalid_token\",error_description=\"The access token is invalid.\""},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"GET, PUT, PATCH, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"58"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Authentication credentials were not provided.\"\n}"},{"id":"1bec665b-72f5-42d2-bf3f-d2e7fb1b7bba","name":"200","originalRequest":{"method":"PATCH","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"ed\",\n    \"last_name\": \"test\"\n}\n"},"url":"{{base_url}}/account/self/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:17:05 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"GET, PUT, PATCH, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"61"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"first_name\": \"ed\",\n    \"last_name\": \"test\",\n    \"email\": \"dev@auth.com\"\n}"}],"_postman_id":"da0a6379-3708-45e8-bef3-0e9d1f35828d"},{"name":"Change password","id":"95719142-0e00-4df8-aaca-6d3f983889f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"old_password\": \"123\",\n    \"password1\": \"1234authfw\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/change/","description":"<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-python\">   USE_PASSWORD_TWICE_VALIDATION = False\n</code></pre>\n<p>to get rid of <code>password2</code> validation, if you validate at frontend instead.</p>\n","urlObject":{"path":["account","password","change",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"d5005871-140e-4d88-a4b4-c9960f0e000a","name":"400 - default twice passwords mismatch","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"old_password\": \"123\",\n    \"password1\": \"1234authfw\",\n    \"password2\": \"1234d\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/change/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:20:26 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"85"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"password2\": {\n        \"message\": \"You must type the same password each time.\",\n        \"code\": \"AP002\"\n    }\n}"},{"id":"9aa8b745-130e-4733-811f-676c392a9c32","name":"200 - success without USE_PASSWORD_TWICE_VALIDATION","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"old_password\": \"123\",\n    \"password1\": \"1234authfw\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/change/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:24:18 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"42"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"New password has been saved.\"\n}"},{"id":"89b931d9-858b-4d6f-9d64-b9cb8377a602","name":"400 - invalid old password","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"old_password\": \"12d3\",\n    \"password1\": \"1234authfw\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/change/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:14:57 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"62"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"old_password\": {\n        \"message\": \"Invalid password\",\n        \"code\": \"AP003\"\n    }\n}"}],"_postman_id":"95719142-0e00-4df8-aaca-6d3f983889f6"},{"name":"Reset Password by Pin","id":"a8c7356c-70ad-4e69-8f9a-b593bc7135f2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"test@auth.com\",\n    \"pin\": 903437,\n    \"password1\": \"123authfw\",\n    \"password2\": \"123authfw\"\n}"},"url":"{{base_url}}/account/password/reset/pin/","urlObject":{"path":["account","password","reset","pin",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"1ab90f28-de23-4f77-abf5-863b41eac2e6","name":"400 - eamil not existed","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"not@existed.com\",\n    \"pin\": 973145,\n    \"password1\": \"123authfw\",\n    \"password2\": \"123authfw\"\n}"},"url":"{{base_url}}/account/password/reset/pin/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:58:41 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"68"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"email\": [\n        \"The e-mail address is not assigned to any user account\"\n    ]\n}"},{"id":"c230b9fd-4c0a-493a-8c09-215b470be4b4","name":"400 - incorrect/expired pin","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"test@auth.com\",\n    \"pin\": 973145,\n    \"password1\": \"123authfw\",\n    \"password2\": \"123authfw\"\n}"},"url":"{{base_url}}/account/password/reset/pin/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:59:09 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"81"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"pin\": {\n        \"message\": \"pins do not match, please try to get new pin.\",\n        \"code\": \"AP05\"\n    }\n}"},{"id":"a5179706-6556-4c81-9709-bcb6fc4eea70","name":"200","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"email\": \"test@auth.com\",\n    \"pin\": 903437,\n    \"password1\": \"123authfw\",\n    \"password2\": \"123authfw\"\n}"},"url":"{{base_url}}/account/password/reset/pin/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:08:04 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"42"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"New password has been saved.\"\n}"}],"_postman_id":"a8c7356c-70ad-4e69-8f9a-b593bc7135f2"},{"name":"Reset Password by Link","id":"7c556b08-aefc-4a8a-9c63-99a8b7dbaa25","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"password1\":\"123authfw\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/reset/2-asfcqg-b05ab7e8265d8bade73ade32118a0051/","urlObject":{"path":["account","password","reset","2-asfcqg-b05ab7e8265d8bade73ade32118a0051",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"99ddedd0-289d-48b2-951e-f9f8200c5585","name":"400 - incorrect/expired link","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"password1\":\"123authfw\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/reset/2-asfcqg-b05ab7e8265d8bade73ade32118a00d1/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:20:52 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"51"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The password reset token was invalid.\"\n}"},{"id":"3fd7feeb-c8d8-4f7c-a0ce-7022ef782927","name":"200","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"password1\":\"123authfw\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/reset/2-asfcqg-b05ab7e8265d8bade73ade32118a0051/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:21:58 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"GET, POST, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"42"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"New password has been saved.\"\n}"}],"_postman_id":"7c556b08-aefc-4a8a-9c63-99a8b7dbaa25"},{"name":"Create Pin for Password Reset","id":"0765116f-94f6-443c-9f12-1f250389424a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"test@auth.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/pin/","description":"<ul>\n<li>it will send reset pin via <code>email</code></li>\n<li>send via sms to <code>phone_number</code> if you have Twilio service and in <code>settings.py</code>:\n<code>'USE_PHONENUMBER_FIELD': True</code></li>\n<li>using celery task queue is recommended:\n<code>'USE_CELERY_EMAIL': True</code></li>\n<li><strong>always use redis or alternatives as cache engine in production</strong></li>\n<li><strong>remember to configure your email settings</strong></li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-python\"># Email Setting\nEMAIL_HOST = 'smtp.auth.com'\nEMAIL_HOST_USER = 'info@auth.com'\nEMAIL_HOST_PASSWORD = '*****'\nEMAIL_PORT = 587\nEMAIL_USE_TLS = True\nEMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'\nDEFAULT_FROM_EMAIL = EMAIL_HOST_USER\n</code></pre>\n","urlObject":{"path":["account","password","pin",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"32da5b29-52c0-4895-b117-68c0f92b4edc","name":"400 - email not existed","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"not@exisited.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/pin/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:35:34 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"68"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"email\": [\n        \"The e-mail address is not assigned to any user account\"\n    ]\n}"},{"id":"3462a506-456d-4f49-b3a4-73a951120f33","name":"202","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"test@auth.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/pin/"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Fri, 03 Sep 2021 23:55:55 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"35"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Message has been sent\"\n}"}],"_postman_id":"0765116f-94f6-443c-9f12-1f250389424a"},{"name":"Create Link for Password Reset","id":"4488bc3d-0ca8-43ab-a1e1-6f0304d5525b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"test@auth.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/link/","urlObject":{"path":["account","password","link",""],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"11dea043-51d0-4cba-b91b-fa5fb63dc03e","name":"202","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"test@auth.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/account/password/link/"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Sat, 04 Sep 2021 00:15:55 GMT"},{"key":"Server","value":"WSGIServer/0.2 CPython/3.9.5"},{"key":"Content-Type","value":"application/json"},{"key":"Vary","value":"Accept, Cookie"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Content-Length","value":"35"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Message has been sent\"\n}"}],"_postman_id":"4488bc3d-0ca8-43ab-a1e1-6f0304d5525b"}],"id":"26351b15-0933-4530-a648-86b1ea742ced","_postman_id":"26351b15-0933-4530-a648-86b1ea742ced","description":""}]}