Module-Zero之啟動模板


返回《Module Zero學習目錄》


概覽介紹##

使用ABP和Module-Zero開始一個新的項目最簡單的方式通過ABP官網的模板頁面創建一個解決方案的模板。進入頁面之后,選擇選項卡"ABP + module zero",然后創建你的項目。當前,該模板只支持EntityFramework作為ORM(還不支持NHiberbate)。

創建並下載你的項目之后,使用Visual Studio打開你的解決方案。
選擇Web項目作為起始項目。
打開包管理控制台,選擇“EntityFramework”項目作為默認項目,然后運行EF的'Update-Database'命令。該命令會創建數據庫。
運行該應用,默認的用戶名是'admin',密碼是'123qwe'。
在該模板中,默認是開啟多租戶的。如果你不需要的話可以在Core項目的module文件中關閉它。

社交登錄##

啟動模板支持Facebook, Twitter和Google+登錄,在Web.config中,你可以看到下面的設置:

 <appSettings>
  <add key="webpages:Version" value="3.0.0.0" />
  <add key="webpages:Enabled" value="false" />
  <add key="ClientValidationEnabled" value="true" />
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />

  <add key="ExternalAuth.Facebook.IsEnabled" value="false" />
  <add key="ExternalAuth.Facebook.AppId" value="" />
  <add key="ExternalAuth.Facebook.AppSecret" value="" />

  <add key="ExternalAuth.Twitter.IsEnabled" value="false" />
  <add key="ExternalAuth.Twitter.ConsumerKey" value="" />
  <add key="ExternalAuth.Twitter.ConsumerSecret" value="" />

  <add key="ExternalAuth.Google.IsEnabled" value="false" />
  <add key="ExternalAuth.Google.ClientId" value="" />
  <add key="ExternalAuth.Google.ClientSecret" value="" />

</appSettings> 

這里,你可以設置你需要的社交登錄。當然,你必須要有從相關的社交網站獲得的keys和密碼。你可以從網頁上學習如何獲得這個keys。一旦你開啟了社交登錄,你會在登錄頁面看到一個按鈕。類似地,你也可以實現其他的登錄。

基於Token的認證##

啟動模板使用了基於cookie的瀏覽器認證。如果你想在一個移動端應用上使用Web APIs或者應用服務(通過動態web api暴露),你很可能想使用基於token的認證機制。啟動模板包括了不記名token認證基礎。.WebApi項目中的AccountController包含了獲取token的認證action,以后我們就可以對后面的請求使用這個token了。
這里,我會使用Postman(chrome插件)演示請求和響應。

認證(Authentication)

localhost:6334/api/Account/Authenticate 發送一個post請求,頭部的Context-Type="application/json",如下所示:

我們發送了一個包含userNameOrEmailAddress和password的Json請求體,還有,對於租戶用戶來說,也應該發送tenancyName。正如上面看到的,返回Josn的result屬性包含了token。我們可以保存該token,用於后面的請求。

使用API

認證並獲得token之后,我們可以使用它來調用任何授權的的action。所有的應用服務都是可以遠程使用的。比如,我們可以使用Tenant服務獲取租戶的列表:
tokenRequest
localhost:6334/api/services/app/tenant/GetTenants 發送Post請求,請求頭部包含Content-Type="application/json"Authorization="Bearer your-auth-token" 。請求體是一個空的{}。當然,請求和響應體對於不同的APIs是不同的。
幾乎所有UI上的可使用的操作,同樣也可以作為Web API使用(因為UI使用了相同的Web API),並且很容易使用。

單元測試##

啟動模板包含了測試基礎設施的安裝,並且在.Test項目下面有一些測試。你可以檢查它們並能很容易地寫一些類似的測試。實際上,它們是集成測試而不是單元測試,因為它們使用所有的ABP框架的基礎設施(包括驗證,授權和工作單元...)來測試你的代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM