Skip to content
This repository has been archived by the owner on Sep 26, 2023. It is now read-only.

jim60105/LINELoginOIDCImplementationDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LINE Login OpenID Connect Implementation Demo Project

這是 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.csAuthController.csAuthentication.cs !

Try it out!

  • 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

    • 「方案總管」→專案上右鍵→「管理使用者密碼」
      2022-06-29 17 22 50

    • 填入設定
      2022-06-29 18 49 33

      {
          "OpenIDConnect:ClientSecret": <Channel secret>,
          "OpenIDConnect:ClientId": <Channel ID>,
          "Kestrel:Certificates:Development:Password": <上一步驟的密碼>
      }
  • 把啟始專案改為「docker-compose」
    2022-06-29 18 07 46

  • 啟動但不偵錯 (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://你的對外網域/