這是 LINE 的 OAuth 2.0 OpenID Connect 串接練習專案。
注意!
本專案目的在練習發明輪子,生產環境請使用Microsoft.AspNetCore.Authentication.OpenIdConnect
套件
https://github.com/jim60105/LINELoginOIDCDemo
- C# ASP.NET Core 6 MVC 專案
- 不使用 OpenIdConnect 套件
- 使用 MVC Controller 來接 OAuth 流程
- Dockerize,包括開發環境和部署環境
- OIDC實做的重點在 Program.cs、AuthController.cs、Authentication.cs !
-
在 LINE Developer Console 註冊新的 Channel,取得「Channel ID」、「Channel secret」
-
在 「Callback URL」填入
https://localhost:9001/signin-oidc
-
Git clone
git clone https://github.com/jim60105/LINELoginOIDCImplementationDemo.git
-
Visual Studio 啟動
LINELoginOIDCImplementationDemo.sln
-
使用套件
dotnet dev-certs
產生開發用自簽憑證,匯出,並信任。
密碼自己取,在下一步驟用到。參閱官方文件dotnet dev-certs https -ep $env:USERPROFILE\.aspnet\https\LINELoginOIDCImplementationDemo.pfx -p YOURPASSWORD dotnet dev-certs https --trust
-
Add User Secrets
-
啟動但不偵錯 (Ctrl+F5)
-
訪問
https://localhost:9001/
,拿回來的登入資訊將顯示在https://localhost:9001/Home/Privacy
- 修改
docker-compose.yml
,在 environment 填入 ClientId、ClientSecret、RedirectUri docker-compose up -d
後會在 9000 port 聽 http request- 請放在 ReverseProxy 後面,接 https 轉後送 http
- 在 LINE Developer Console -「Callback URL」填入
https://你的對外網域/signin-oidc
,例如我的是https://oidcimplementationdemo.maki0419.com/signin-oidc
- 訪問
https://你的對外網域/