{"id":21963016,"url":"https://github.com/alphabs/naverlogin","last_synced_at":"2025-07-06T03:06:05.054Z","repository":{"id":114368766,"uuid":"398177820","full_name":"AlphaBs/NaverLogin","owner":"AlphaBs","description":"NaverLogin","archived":false,"fork":false,"pushed_at":"2021-08-26T15:55:21.000Z","size":47,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-09T22:44:23.707Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlphaBs.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-20T06:28:18.000Z","updated_at":"2021-10-15T04:06:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"b1fa998b-2eda-4d1a-b5c8-9a6236ed91b0","html_url":"https://github.com/AlphaBs/NaverLogin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlphaBs/NaverLogin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaBs%2FNaverLogin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaBs%2FNaverLogin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaBs%2FNaverLogin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaBs%2FNaverLogin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlphaBs","download_url":"https://codeload.github.com/AlphaBs/NaverLogin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlphaBs%2FNaverLogin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263841596,"owners_count":23518486,"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":[],"created_at":"2024-11-29T10:59:13.823Z","updated_at":"2025-07-06T03:06:05.033Z","avatar_url":"https://github.com/AlphaBs.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NaverLogin\n.NET 네이버 로그인 라이브러리\n\n현재 GNU 라이센스 사용중입니다. 나중에 변경할 예정\n\n## 공통\n\n### [HttpClient](https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-5.0)\n모든 웹 요청은 `HttpClient` 으로 이루어집니다. `HttpClient` 객체 생성과 관리는 라이브러리에서 처리하지 않습니다.  \n따라서 라이브러리를 사용하기 전 `HttpClient` 객체 생성과 관리를 위한 코드 작성이 필요합니다. 특히 쿠키 관리가 필요할 경우, `CookieContainer` 객체를 생성하여 관리하시길 바랍니다.\n\n### BrowserInfo\n\n브라우저와 클라이언트와 관련된 데이터는 모두 `BrowserInfo` 객체에서 저장합니다.  \n아직까지는 `UserAgent` 속성 뿐이지만, 추후 창 크기, 폰트 목록, GPU 이름 등등 BVSD 처리를 위해 더 많은 속성이 추가될 수 있습니다. \n\n```c#\nvar browser = new BrowserInfo\n{\n    UserAgent = \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246\";\n};\n```\n\n### NaverLoginForm\n\n네이버 로그인을 위한 계정 정보, 로그인 옵션 등이 포함되어 있습니다.  \n현재 아이디와 비밀번호 속성만 작동하며, 추후 IP 보안, 로그인 유지 옵션 등이 추가될 수 있습니다.\n\n```c#\nvar loginForm = new NaverLoginForm\n{\n    Id = \"네이버 계정 아이디\",\n    Password = \"네이버 계정 비밀번호\"\n};\n```\n\n## NaverHeadlessLogin\n\n네이버 내부 서비스를 이용하기 위한 로그인. (메일, 카페, 블로그 등등)\n\n### 사용법\n\n```c#\nvar http = new HttpClient();\nvar browser = new BrowserInfo\n{\n    UserAgent = \"유저에이전트\"\n};\n\nvar naverLogin = new NaverHeadlessLogin(http, browser);\nvar loginForm = new NaverLoginForm\n{\n    Id = \"네이버 아이디\",\n    Password = \"네이버 비밀번호\"\n}\n\nvar loginResult = await naverLogin.Login(loginForm);\n\n// loginResult.IsSuccess : 로그인 성공 여부\n// loginResult.Response : HttpClient에서 반환한 HttpResponseMessage\n```\n\n#### bool AutoRedirect { get; set; }\n\n리다이렉트를 자동으로 처리할지 여부. 3xx 리다이렉트는 HttpClient 의 설정에 따라 처리되며 이 속성은 자바스크립트를 이용한 리다이렉트(location.href)를 자동으로 처리할지의 여부입니다.  \n기본값은 true 입니다.\n\n#### Task\u003cNaverLoginResult\u003e Login(NaverLoginForm form)\n\nform 정보를 사용하여 로그인 후 네이버 메인 페이지로 이동합니다.\n\n#### Task\u003cNaverLoginResult\u003e Login(NaverLoginForm form, string redirect)\n\nform 정보를 사용하여 로그인 후 redirect 페이지로 이동합니다.\n\n#### Task\u003cNaverLoginResult\u003e LoginFromUrl(NaverLoginForm form, string url)\n\nurl 페이지에서 form 정보를 사용하여 로그인합니다.\n\n#### Task\u003cNaverLoginResult\u003e LoginFromHtml(NaverLoginForm form, string loginPageHtml, string currentReferer=\"\")\n\nform: 로그인할 정보\nloginPageHtml: 로그인 페이지의 HTML 코드  \ncurrentReferer(선택): 로그인 요청을 보낼 때 referer 헤더에 설정할 값\n\n## NaverHeadlessOAuth\n\n네이버 외부 서비스를 이용하기 위한 로그인. OAuth 로그인 방식 처리\n\n### 사용법\n\n```c#\n// http: HttpClient 객체, browser: BrowserInfo 객체. 문서 상단 '공통' 부분에 설명되어 있습니다.\nvar naverOAuth = new NaverHeadlessOAuth(http, browser);\n\n// loginForm: NaverLoginForm 객체. 아이디와 비밀번호를 여기에 입력하세요.\n// response_type, client_id 등등은 oauth 로그인 페이지의 url 에 있습니다.\nvar loginResult = await naverOAuth.Login(loginForm, \"\u003cresponse_type\u003e\", \"\u003cclient_id\u003e\", \"\u003credirect_url\u003e\", \"\u003cstate\u003e\");\n\n// loginResult.IsSuccess: 로그인 성공여부\n// loginResult.Response: HttpClient의 HttpResponseMessage\n```\n\n#### Task\u003cNaverOAuthResult\u003e Login(NaverLoginForm form, string? responseType, string? clientId, string? redirectUri)\n\n`responseType`, `clientId`, `redirectUri` 를 이용해 네이버 OAuth 로그인 페이지의 uri 를 생성하여 이동 후, 해당 페이지에서 form 정보를 사용하여 로그인합니다.  \n\n#### Task\u003cNaverOAuthResult\u003e Login(NaverLoginForm form, string? responseType, string? clientId, string? redirectUri, string? state)\n\n`responseType`, `clientId`, `redirectUri`, `state` 를 이용해 네이버 OAuth 로그인 페이지의 uri 를 생성하여 이동 후, 해당 페이지에서 form 정보를 사용하여 로그인합니다.  \n\n#### Task\u003cNaverOAuthResult\u003e LoginFromUrl(NaverLoginForm form, string url)\n\nurl 페이지에서 form 정보를 사용하여 OAuth 로그인을 합니다.\n\n## NaverSearchAdvisor\n\n[네이버 서치어드바이저](https://searchadvisor.naver.com/) 에서 네이버 OAuth 를 이용한 로그인 기능을 제공합니다.\n\n### 사용법\n\n```c#\nvar searchAdvisor = new NaverSearchAdvisor(http, browser);\nvar loginResult = await searchAdvisor.Login(loginForm);\n\n// loginResult 는 api/auth/login-token 요청 후 응답입니다. (access-token, refresh-token 포함)\n// loginResult 는 HttpClient 의 HttpResponseMessage 형식입니다.  \n```\n\n#### Task\u003cstring\u003e AuthConfirm(object loginData)\n\napi/auth/confirm 요청. loginData 는 로그인 후 결과(JSON) 를 역직렬화한 객체를 의미합니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphabs%2Fnaverlogin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falphabs%2Fnaverlogin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falphabs%2Fnaverlogin/lists"}