[C#] 使用 MrHuo.OAuth 來輕鬆做到 Github 登入

2021-01-25

最近看到一個 open source 專案感覺蠻簡單的,就測試玩了一下,不過因為我是使用 webform 開發手上的專案,但是他們官方案例就是使用 .net core ,所以我就是測試一下遇到一些小問題,這邊就分享一下,推薦一下 這 open source 專案 MrHuo.OAuth ,讓你可以輕鬆做到各家的登入..

1. 開發前先 nuget 安裝 MrHuo.OAuth.Github 

2. 你要去 github 註冊一個 app , https://github.com/settings/developers ,註冊後 記得 要設定 Authorization callback URL,就是登入後 github 傳入到該網址。 這邊我是設定成 https://localhost:44391/testoauth2.aspx ,剩下的 Client ID , Client secrets 記錄下來,等程式都會用到

3.  第一個頁面 點擊後 導入到 Github 的  AuthorizeUrl ,中間記得帶入 appid , app secret 上面步驟會拿到的

4. 接收頁,這邊比較特別的如果你沒有用  aync  的做法,他會一直取不到 access token ,所以我們在  aspx 頁面中要設定  Async="true",並且 Page_Load 要用 async ,如果你沒有這樣做,我就是在取 access token 的時候會一直旋轉而且就拿不回來了..

之後就會拿到 result

{"TokenType":"bearer","AccessToken":"586f767ec91d602b09eb4e3202b07c9364055404","RefreshToken":null,"Scope":"user","ExpiresIn":null,"Error":null,"ErrorDescription":null},{"Name":"user-identifier","Avatar":"https://avatars.githubusercontent.com/u/77826698?v=4","Email":"[email protected]","Company":null,"Blog":"","Bio":null,"CreateAt":"2021-01-22T06:56:42Z","UpdateAt":"2021-01-25T04:43:03Z","PublicRepos":0,"PublicGists":0,"Followers":0,"Following":0,"ErrorMessage":null}


是不是超簡單的,如果你想要看 .net core 範例可以看官方的,只是因為目前手上要用的案子是 webform (aspx) 所以就試寫了一下,碰到問題分享一下。

再次感謝 Github 上面開源的大大們 (鞠躬


當麻許的超技八 2014 | Donma Hsu Design.