{"id":16691427,"url":"https://github.com/bbonkr/sample.external.login","last_synced_at":"2026-04-16T11:01:51.002Z","repository":{"id":149790244,"uuid":"390260610","full_name":"bbonkr/sample.external.login","owner":"bbonkr","description":"Example for Facebook login and Facebook deletion request callback","archived":false,"fork":false,"pushed_at":"2021-07-29T04:19:59.000Z","size":731,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-26T05:40:18.585Z","etag":null,"topics":["aspnetcore","csharp","dotnet","facebook","facebook-login"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbonkr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-28T07:43:47.000Z","updated_at":"2021-07-29T04:41:40.000Z","dependencies_parsed_at":"2023-06-02T15:30:23.827Z","dependency_job_id":null,"html_url":"https://github.com/bbonkr/sample.external.login","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bbonkr/sample.external.login","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbonkr%2Fsample.external.login","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbonkr%2Fsample.external.login/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbonkr%2Fsample.external.login/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbonkr%2Fsample.external.login/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbonkr","download_url":"https://codeload.github.com/bbonkr/sample.external.login/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbonkr%2Fsample.external.login/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31882886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["aspnetcore","csharp","dotnet","facebook","facebook-login"],"created_at":"2024-10-12T16:08:25.982Z","updated_at":"2026-04-16T11:01:50.986Z","avatar_url":"https://github.com/bbonkr.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Sample.App\n\n웹 응용프로그램은 아래와 같이 `MVC` 템플릿을 사용해서 작성되었습니다.\n\n```\n$ dotnet new mvc --auth Individual\n```\n\n그 후 SQLite 대상으로 하는 코드를 SQLServer 로 변경했습니다.\n\n### Add migration\n\n```bash\n$ dotnet ef migrations add \"Initialize database\" --context ApplicationDbContext --output-dir Data/Migrations\n```\n\n### Appsettings\n\n웹 응용프로그램 프로젝트의 `appsettings.json` 파일을 환경에 맞게 편집해야 합니다.\n\n```json\n{\n    \"ConnectionStrings\": {\n        \"DefaultConnection\": \"DataSource=app.db;Cache=Shared\"\n    },\n    \"Authentication\": {\n        \"Facebook\": {\n            \"AppId\": \"\u003capp-id\u003e\",\n            \"AppSecret\": \"\u003capp-secret\u003e\"\n        }\n    },\n    // \n}\n```\n\n`App id`, `App secret` 의 값은 [Facebook 앱](https://developers.facebook.com/apps)을 작성하면 확인할 수 있습니다.\n\n## Facebook 로그인 설정\n\n페이스북 앱 콘솔에서 페이스북 로그인 설정 페이지의 승인 취소 영역에 사용자가 앱을 삭제하는 경우 요청될 URL을 설정할 수 있습니다.\n\n![](images/001.png)\n\n## 앱 삭제\n\n페이스북 설정 페이지의 앱 및 웹사이트 페이지에서 로그인이 사용된 앱 및 웹사이트 목록을 확인할 수 있습니다.\n\n그리고, 목록에서 로그인 삭제를 할 수 있습니다.\n\n사용자가 앱 및 웹사이트 목록에서 앱 또는 웹사이트를 삭제하는 경우 등록해둔 승인 취소 콜백 URL에 POST 요청이 실행됩니다.\n\n![](images/002.png)\n\n## 승인 취소 콜백\n\n승인 취소 콜백으로 등록된 URL에 POST 요청이 실행될 때, [Facebook: App and website](https://www.facebook.com/settings/?tab=applications) 페이지의 설명과 같이 POST 요청 본문의 `signed_request` 값에서 로그인에 사용된 `user_id` 를 참조할 수 있습니다.\n\n`php` 로 작성된 예제 코드를 제공하고 있습니다.\n\n이 코드를 C# 으로 작성하면 [GitHub: bbonkr/sample.external.login](https://github.com/bbonkr/sample.external.login) 저장소의 [`src/Sample.App/Services/FacebookService.cs`](https://github.com/bbonkr/sample.external.login/blob/main/src/Sample.App/Services/FacebookService.cs) 와 같이 작성할 수 있습니다.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbonkr%2Fsample.external.login","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbonkr%2Fsample.external.login","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbonkr%2Fsample.external.login/lists"}