├── .gitignore ├── OAuthExample.AppClient ├── Form1.Designer.cs ├── Form1.cs ├── Form1.resx ├── OAuthExample.AppClient.csproj ├── Program.cs └── appsettings.json ├── OAuthExample.Service ├── Clients │ ├── GithubOAuthService.cs │ ├── GoogleOAuthService.cs │ ├── IOAuthService.cs │ ├── LineOAuthService.cs │ └── MicrosoftOAuthService.cs ├── Entities │ ├── UserInfoEntity.cs │ └── UserLoginLinkEntity.cs ├── Enums │ └── AuthenticationMethodEnum.cs ├── Helpers │ └── EncryptHelper.cs ├── Models │ ├── LoginClientDataDto.cs │ └── LoginResultDto.cs ├── OAuthExample.Service.csproj ├── Options │ ├── OauthOptions.cs │ └── StateManageOptions.cs ├── Repositories │ ├── ILoginRepository.cs │ └── LoginRepository.cs └── Services │ ├── ILoginService.cs │ ├── IStateManageService.cs │ ├── LoginService.cs │ └── StateManageService.cs ├── OAuthExample.Web ├── Controllers │ ├── HomeController.cs │ └── LoginController.cs ├── Models │ └── UserInfoViewModel.cs ├── OAuthExample.Web.csproj ├── Program.cs ├── Properties │ └── launchSettings.json ├── ViewComponents │ └── UserInfoViewComponent.cs ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Login │ │ └── Index.cshtml │ ├── Shared │ │ ├── Components │ │ │ └── UserInfo │ │ │ │ └── Default.cshtml │ │ ├── _Layout.cshtml │ │ └── _Layout.cshtml.css │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.json └── wwwroot │ ├── css │ └── site.css │ └── favicon.ico ├── OAuthExample.sln ├── README.md └── TestProject1 ├── TestProject1.csproj ├── Tests_StateManageService.cs └── Usings.cs /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/.gitignore -------------------------------------------------------------------------------- /OAuthExample.AppClient/Form1.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.AppClient/Form1.Designer.cs -------------------------------------------------------------------------------- /OAuthExample.AppClient/Form1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.AppClient/Form1.cs -------------------------------------------------------------------------------- /OAuthExample.AppClient/Form1.resx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.AppClient/Form1.resx -------------------------------------------------------------------------------- /OAuthExample.AppClient/OAuthExample.AppClient.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.AppClient/OAuthExample.AppClient.csproj -------------------------------------------------------------------------------- /OAuthExample.AppClient/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.AppClient/Program.cs -------------------------------------------------------------------------------- /OAuthExample.AppClient/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.AppClient/appsettings.json -------------------------------------------------------------------------------- /OAuthExample.Service/Clients/GithubOAuthService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Clients/GithubOAuthService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Clients/GoogleOAuthService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Clients/GoogleOAuthService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Clients/IOAuthService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Clients/IOAuthService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Clients/LineOAuthService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Clients/LineOAuthService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Clients/MicrosoftOAuthService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Clients/MicrosoftOAuthService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Entities/UserInfoEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Entities/UserInfoEntity.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Entities/UserLoginLinkEntity.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Entities/UserLoginLinkEntity.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Enums/AuthenticationMethodEnum.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Enums/AuthenticationMethodEnum.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Helpers/EncryptHelper.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Helpers/EncryptHelper.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Models/LoginClientDataDto.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Models/LoginClientDataDto.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Models/LoginResultDto.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Models/LoginResultDto.cs -------------------------------------------------------------------------------- /OAuthExample.Service/OAuthExample.Service.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/OAuthExample.Service.csproj -------------------------------------------------------------------------------- /OAuthExample.Service/Options/OauthOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Options/OauthOptions.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Options/StateManageOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Options/StateManageOptions.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Repositories/ILoginRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Repositories/ILoginRepository.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Repositories/LoginRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Repositories/LoginRepository.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Services/ILoginService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Services/ILoginService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Services/IStateManageService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Services/IStateManageService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Services/LoginService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Services/LoginService.cs -------------------------------------------------------------------------------- /OAuthExample.Service/Services/StateManageService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Service/Services/StateManageService.cs -------------------------------------------------------------------------------- /OAuthExample.Web/Controllers/HomeController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Controllers/HomeController.cs -------------------------------------------------------------------------------- /OAuthExample.Web/Controllers/LoginController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Controllers/LoginController.cs -------------------------------------------------------------------------------- /OAuthExample.Web/Models/UserInfoViewModel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Models/UserInfoViewModel.cs -------------------------------------------------------------------------------- /OAuthExample.Web/OAuthExample.Web.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/OAuthExample.Web.csproj -------------------------------------------------------------------------------- /OAuthExample.Web/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Program.cs -------------------------------------------------------------------------------- /OAuthExample.Web/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Properties/launchSettings.json -------------------------------------------------------------------------------- /OAuthExample.Web/ViewComponents/UserInfoViewComponent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/ViewComponents/UserInfoViewComponent.cs -------------------------------------------------------------------------------- /OAuthExample.Web/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Views/Home/Index.cshtml -------------------------------------------------------------------------------- /OAuthExample.Web/Views/Login/Index.cshtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Views/Login/Index.cshtml -------------------------------------------------------------------------------- /OAuthExample.Web/Views/Shared/Components/UserInfo/Default.cshtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Views/Shared/Components/UserInfo/Default.cshtml -------------------------------------------------------------------------------- /OAuthExample.Web/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Views/Shared/_Layout.cshtml -------------------------------------------------------------------------------- /OAuthExample.Web/Views/Shared/_Layout.cshtml.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Views/Shared/_Layout.cshtml.css -------------------------------------------------------------------------------- /OAuthExample.Web/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Views/_ViewImports.cshtml -------------------------------------------------------------------------------- /OAuthExample.Web/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/Views/_ViewStart.cshtml -------------------------------------------------------------------------------- /OAuthExample.Web/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/appsettings.json -------------------------------------------------------------------------------- /OAuthExample.Web/wwwroot/css/site.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/wwwroot/css/site.css -------------------------------------------------------------------------------- /OAuthExample.Web/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.Web/wwwroot/favicon.ico -------------------------------------------------------------------------------- /OAuthExample.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/OAuthExample.sln -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/README.md -------------------------------------------------------------------------------- /TestProject1/TestProject1.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/TestProject1/TestProject1.csproj -------------------------------------------------------------------------------- /TestProject1/Tests_StateManageService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CurtisChou-51/OAuthExample/HEAD/TestProject1/Tests_StateManageService.cs -------------------------------------------------------------------------------- /TestProject1/Usings.cs: -------------------------------------------------------------------------------- 1 | global using NUnit.Framework; --------------------------------------------------------------------------------