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",如下所示:
foiEGzQ.png
我们发送了一个包含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框架的基础设施(包括验证,授权和工作单元...)来测试你的代码。





本文转自tkbSimplest博客园博客,原文链接:http://www.cnblogs.com/farb/p/zeroStartupTemplate.html,如需转载请自行联系原作者


目录
相关文章
|
2月前
|
JavaScript
使用 nuxi build-module 命令构建 Nuxt 模块
【8月更文挑战第29天】以下是使用 `nuxi build-module` 构建 Nuxt 模块的步骤:1. 确保已安装 Node.js 和 npm;2. 创建新目录并初始化 npm 项目;3. 安装 Nuxt 相关依赖;4. 创建模块结构,包括 `index.ts` 入口文件;5. 运行 `nuxi build-module` 构建模块;6. 在 Nuxt 项目中安装并配置该模块。确保遵循 Nuxt 最佳实践以保证稳定性和兼容性。
|
5月前
|
存储 JavaScript 前端开发
Angular 应用 node_modules 子文件夹 @types 的作用介绍
Angular 应用 node_modules 子文件夹 @types 的作用介绍
A module cannot have multiple default exports.是、关闭Vetur扩展,或者重启项目,神奇的bug,复制代码造成的
A module cannot have multiple default exports.是、关闭Vetur扩展,或者重启项目,神奇的bug,复制代码造成的
|
3月前
|
JavaScript
TS,编写TS文件,编写hello.ts文件,cmd下打开终端,输入tsc hello.ts会生成一个hello.js文件,简化命令,npm i -g ts-node,ts-node hello.ts
TS,编写TS文件,编写hello.ts文件,cmd下打开终端,输入tsc hello.ts会生成一个hello.js文件,简化命令,npm i -g ts-node,ts-node hello.ts
|
4月前
|
JavaScript
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
|
5月前
|
应用服务中间件 nginx
项目node_modules开发环境变大问题处理
项目node_modules开发环境变大问题处理
146 0
修改了node_modules的文件打包后不生效
修改了node_modules的文件打包后不生效
1292 1
npm i 安装依赖后,项目目录文件没有显示node_modules
npm i 安装依赖后,项目目录文件没有显示node_modules
810 0
npm i 安装依赖后,项目目录文件没有显示node_modules
|
Java Linux 开发者
Powershell教程(2)——自定义模块Module语法
Powershell教程(2)——自定义模块Module语法
690 0
Powershell教程(2)——自定义模块Module语法
|
Unix Shell Linux
快速删除工程下所有的node_modules目录
就是如何合理又快速的删除某个工程下所有的node_modules目录; 其实用shell来解决这个场景就很方便了,都不用装第三方依赖; 一般类unix或linux的系统基本自带的两个命令, find rm
359 0