基于令牌的身份验证
ABPZERO是使用浏览器的cookie来做的身份验证的。
但是,如果你想要使用WebApi和应用层的服务类(他们通过动态webapi请求的,此时这些请求都是暴露在外部的)来访问移动设备。这个时候你就需要基于令牌(Token)的身份验证机制。
ABPZERO是支持token的身份验证的基础结构。
在控制器AccountController中,通过webapi来对身份验证的操作,以获得令牌。我们在下一次的请求中就可以使用获得的令牌信息。
我们使用Postman来模拟登陆过程,postman是一个chrome插件。
身份验证
只是向 http://localhost:6234/api/Account/Authenticate 发送请求,请求类型为json(Context-Type="application/json")
下图所示:
我们发送了一个Json请求,正文为:
{
"tenancyName":"default",
"userNameOrEmailAddress":"admin",
"password":"123qwe"
}
其中包括了tenancyName(租户名称)、userNameOrEmailAddress(用户名)、password(密码)。
相应并且返回的result就是令牌。我们可以将其保存,在下一次的请求中使用。
使用 API
我们在上面的身份授权中,得到了令牌,那么我们就可以用它来做该账户权限范围内的任何事情。所有的应用层的服务都是可以通过远程来调用的。
例如,我们可以使用“userservice”来获取用户列表。
图上的为一个POST请求,访问路径:http://localhost:6234/api/services/app/user/GetUsers请求类型依旧为json,内容则为Authorization="Bearer 刚刚得到的令牌内容"。请求的正文为{}。
当然请求不同的API返回的响应正文也会不同嘛。
几乎所有的UI层都可以使用webapi来访问,毕竟UI使用相同的webapi嘛。(and can be consumed easily.)