{"id":20215659,"url":"https://github.com/casdoor/casdoor-python-vue-sdk-example","last_synced_at":"2025-04-10T14:40:43.527Z","repository":{"id":37982198,"uuid":"413513861","full_name":"casdoor/casdoor-python-vue-sdk-example","owner":"casdoor","description":"Python Flask \u0026 Template \u0026 Vue application example based on casdoor-python-sdk and casdoor-vue-sdk","archived":false,"fork":false,"pushed_at":"2023-11-24T07:45:59.000Z","size":865,"stargazers_count":19,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-24T13:11:12.294Z","etag":null,"topics":["auth","authn","casdoor","django","flask","javascript","js","oauth","python","sso","ts","vue"],"latest_commit_sha":null,"homepage":"https://github.com/casdoor/casdoor","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/casdoor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-10-04T17:07:14.000Z","updated_at":"2024-12-10T09:43:41.000Z","dependencies_parsed_at":"2023-11-24T08:53:44.045Z","dependency_job_id":null,"html_url":"https://github.com/casdoor/casdoor-python-vue-sdk-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fcasdoor-python-vue-sdk-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fcasdoor-python-vue-sdk-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fcasdoor-python-vue-sdk-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casdoor%2Fcasdoor-python-vue-sdk-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/casdoor","download_url":"https://codeload.github.com/casdoor/casdoor-python-vue-sdk-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248233989,"owners_count":21069493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["auth","authn","casdoor","django","flask","javascript","js","oauth","python","sso","ts","vue"],"created_at":"2024-11-14T06:23:51.202Z","updated_at":"2025-04-10T14:40:43.508Z","avatar_url":"https://github.com/casdoor.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\" style=\"border-bottom: none;\"\u003e📦⚡️Casdoor Vue + Python example\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eAn example of casdoor-vue-sdk and casdoor-python-sdk\u003c/h3\u003e\n\n## Architecture\n\nExample contains 2 parts:\n\n| Name     | SDK                | Language         | Source code                                                               |\n|----------|--------------------|------------------|---------------------------------------------------------------------------|\n| Frontend | casdoor-vue-sdk    | Javascript + Vue | https://github.com/casdoor/casdoor-python-vue-sdk-example/tree/master/web |\n| Backend  | casdoor-python-sdk | Python + Flask   | https://github.com/casdoor/casdoor-python-vue-sdk-example                 |\n\n### Demo videos\n\n1. Normal login:\n\n![normalLogin](./img/normalLogin.gif)\n\n2. Silent login:\n\n![silentLogin](./img/silentLogin.gif)\n\n## Installation\n\nExample uses Casdoor to manage members. So you need to create an organization and an application for the example in a Casdoor instance. For how to install Casdoor, see: https://casdoor.org/docs/basic/server-installation\n\n### Get the code\n\n```shell\ngit clone https://github.com/casdoor/casdoor-python-vue-sdk-example\n```\n\n## Configuration\n\n### Frontend\n\n```js\n// in web/src/config.js\nexport let serverUrl = `http://localhost:5000` // port where Python backend runs\n```\n\n```js\n// in web/src/main.js\nconst config = {\n  serverUrl: \"https://door.casdoor.com\", // Casdoor server URL\n  clientId: \"294b09fbc17f95daf2fe\",\n  organizationName: \"casbin\",\n  appName: \"app-vue-python-example\",\n  redirectPath: \"/callback\",\n};\n```\n\n### Backend\n\n```python\n# in config.py\n# certificate:get in your Casdoor server -\u003e application\ncertificate = '''-----BEGIN CERTIFICATE-----\nMIIE+TCCAuGgAwIBAgIDAeJAMA0GCSqGSIb3DQEBCwUAMDYxHTAbBgNVBAoTFENh\nc2Rvb3IgT3JnYW5pemF0aW9uMRUwEwYDVQQDEwxDYXNkb29yIENlcnQwHhcNMjEx\nMDE1MDgxMTUyWhcNNDExMDE1MDgxMTUyWjA2MR0wGwYDVQQKExRDYXNkb29yIE9y\nZ2FuaXphdGlvbjEVMBMGA1UEAxMMQ2FzZG9vciBDZXJ0MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAsInpb5E1/ym0f1RfSDSSE8IR7y+lw+RJjI74e5ej\nrq4b8zMYk7HeHCyZr/hmNEwEVXnhXu1P0mBeQ5ypp/QGo8vgEmjAETNmzkI1NjOQ\nCjCYwUrasO/f/MnI1C0j13vx6mV1kHZjSrKsMhYY1vaxTEP3+VB8Hjg3MHFWrb07\nuvFMCJe5W8+0rKErZCKTR8+9VB3janeBz//zQePFVh79bFZate/hLirPK0Go9P1g\nOvwIoC1A3sarHTP4Qm/LQRt0rHqZFybdySpyWAQvhNaDFE7mTstRSBb/wUjNCUBD\nPTSLVjC04WllSf6Nkfx0Z7KvmbPstSj+btvcqsvRAGtvdsB9h62Kptjs1Yn7GAuo\nI3qt/4zoKbiURYxkQJXIvwCQsEftUuk5ew5zuPSlDRLoLByQTLbx0JqLAFNfW3g/\npzSDjgd/60d6HTmvbZni4SmjdyFhXCDb1Kn7N+xTojnfaNkwep2REV+RMc0fx4Gu\nhRsnLsmkmUDeyIZ9aBL9oj11YEQfM2JZEq+RVtUx+wB4y8K/tD1bcY+IfnG5rBpw\nIDpS262boq4SRSvb3Z7bB0w4ZxvOfJ/1VLoRftjPbLIf0bhfr/AeZMHpIKOXvfz4\nyE+hqzi68wdF0VR9xYc/RbSAf7323OsjYnjjEgInUtRohnRgCpjIk/Mt2Kt84Kb0\nwn8CAwEAAaMQMA4wDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAn2lf\nDKkLX+F1vKRO/5gJ+Plr8P5NKuQkmwH97b8CS2gS1phDyNgIc4/LSdzuf4Awe6ve\nC06lVdWSIis8UPUPdjmT2uMPSNjwLxG3QsrimMURNwFlLTfRem/heJe0Zgur9J1M\n8haawdSdJjH2RgmFoDeE2r8NVRfhbR8KnCO1ddTJKuS1N0/irHz21W4jt4rxzCvl\n2nR42Fybap3O/g2JXMhNNROwZmNjgpsF7XVENCSuFO1jTywLaqjuXCg54IL7XVLG\nomKNNNcc8h1FCeKj/nnbGMhodnFWKDTsJcbNmcOPNHo6ixzqMy/Hqc+mWYv7maAG\nJtevs3qgMZ8F9Qzr3HpUc6R3ZYYWDY/xxPisuKftOPZgtH979XC4mdf0WPnOBLqL\n2DJ1zaBmjiGJolvb7XNVKcUfDXYw85ZTZQ5b9clI4e+6bmyWqQItlwt+Ati/uFEV\nXzCj70B4lALX6xau1kLEpV9O1GERizYRz5P9NJNA7KoO5AVMp9w0DQTkt+LbXnZE\nHHnWKy8xHQKZF9sR7YBPGLs/Ac6tviv5Ua15OgJ/8dLRZ/veyFfGo2yZsI+hKVU5\nnCCJHBcAyFnm1hdvdwEdH33jDBjNB6ciotJZrf/3VYaIWSalADosHAgMWfXuWP+h\n8XKXmzlxuHbTMQYtZPDgspS5aK+S4Q9wb8RRAYo=\n-----END CERTIFICATE-----'''\n\nCASDOOR_SDK = CasdoorSDK(\n        endpoint='https://door.casdoor.com', # Casdoor server URL\n        client_id='294b09fbc17f95daf2fe',\n        client_secret='dd8982f7046ccba1bbd7851d5c1ece4e52bf039d',\n        certificate=certificate,\n        org_name='casbin',\n        application_name='app-vue-python-example',\n    )\n```\n\n- install dependencies\n\n  ```shell\n  PS .\\casdoor-python-vue-sdk-example\\web\u003e yarn install\n  PS .\\casdoor-python-vue-sdk-example\u003e pip install -r requirements.txt\n  ```\n\n- run\n\nFor Linux:\n\n  ```\n  user@machine:/casdoor-python-vue-sdk-example/web$ yarn serve\n  user@machine:/casdoor-python-vue-sdk-example$ ./venv/Scripts/python app.py\n  ```\n\nFor Windows:\n\n  ```\n  PS .\\casdoor-python-vue-sdk-example\\web\u003e yarn serve\n  PS .\\casdoor-python-vue-sdk-example\u003e venv\\Scripts\\python.exe app.py\n  ```\n\n- Now, example runs its front end at port 8080 and runs it's back end at port 5000. You can modify the code and see what will happen.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasdoor%2Fcasdoor-python-vue-sdk-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcasdoor%2Fcasdoor-python-vue-sdk-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasdoor%2Fcasdoor-python-vue-sdk-example/lists"}