dotNET 데스크톱 앱
Casdoor를 위한 Dotnet 데스크톱 앱 예제.
예제 실행 방법
사전 요구 사항
- dotNET 6 SDK
- WebView2 런타임 (보통 Windows에 미리 설치되어 있음)
초기화
초기화에는 모두 문자열 타입의 5개의 매개변수가 필요합니다:
이름 | 설명 | 파일 |
---|---|---|
Domain | Casdoor 서버의 호스트/도메인 | CasdoorVariables.cs |
ClientId | Casdoor 애플리케이션의 클라이언트 ID | CasdoorVariables.cs |
AppName | Casdoor 애플리케이션의 이름 | CasdoorVariables.cs |
CallbackUrl | Casdoor 애플리케이션에 대한 콜백 URL의 경로. 제공되지 않으면, casdoor://callback 이 됩니다 | CasdoorVariables.cs |
ClientSecret | Casdoor 애플리케이션의 클라이언트 비밀번호 | CasdoorVariables.cs |
이 매개변수들을 설정하지 않으면, 프로젝트는 기본적으로 Casdoor 온라인 데모를 Casdoor 서버로, Casnode를 Casdoor 애플리케이션으로 사용하게 됩니다.
실행
Visual Studio
casdoor-dotnet-desktop-example.sln
열기Ctrl + F5
를 눌러 시작
명령 줄
cd src/DesktopApp
dotnet run
미리보기
dotNET 데스크톱 애플리케이션을 실행하면, 새 창이 데스크톱에 나타납니다.
Casdoor 로그인
버튼을 클릭하면, 로그인 창이 데스크톱에 나타납니다.
성공적으로 로그인하면, 사용자 프로필 창이 데스크톱에 나타나며, 사용자 이름을 표시합니다.
아래의 GIF 이미지에서 전체 과정을 미리 볼 수 있습니다.
통합하는 방법
로그인 창 열기
var login = new Login();
// Triggered when login succeeds, you will receive an auth code in the event handler
login.CodeReceived += Login_CodeReceived;
login.ShowDialog();
인증 코드를 사용하여 사용자 정보 얻기
public async Task<string?> RequestToken(string clientId, string clientSecret, string code)
{
var body = new
{
grant_type = "authorization_code",
client_id = clientId,
client_secret = clientSecret,
code
};
var req = new RestRequest(_requestTokenUrl).AddJsonBody(body);
var token = await _client.PostAsync<TokenDto>(req);
return token?.AccessToken;
}
public async Task<UserDto?> GetUserInfo(string token)
{
var req = new RestRequest(_getUserInfoUrl).AddQueryParameter("accessToken", token);
return await _client.GetAsync<UserDto>(req);
}
...
var token = await _casdoorApi.RequestToken(
CasdoorVariables.ClientId,
CasdoorVariables.ClientSecret,
authCode
);
var user = await _casdoorApi.GetUserInfo(token);