斗鱼米希尔去哪了,福林与母,淋浴房如何安装
本次是在原有apitemplate项目之上,增加一个用户登录权限控制模块,用于验证apitemplate项目在面对一些简单问题时,如何抽象并支持未来的扩展。用户登录权限控制模块看上去很简单,但由于业余时间总是有限的。所以借助此机会实践一次用户敏捷开发。首先拆分模块,本次只实现用户登录和登出。
apitemplate项目地址:https://github.com/cqhaibin/apitemplate
像本次就只列出了任务的期限,而没有列出每个子阶段的期限,如:一个需求必须要经过需求分析、模块设计、代码实现等阶段。这些子阶段也需要给出具体的期限。
实现根据用户名的登录、登出接口。
接口统一使用rest api, 实现登录、登出两个接口
{ username<string>, //用户名 password<string> //密码 }
{ issuccess<bool>, //请求是否成功 resultcode<number>, //请求状态code 200006:账号不存在;200001:账号被禁用;200002:密码错误 data<object>:{ token<string> //登录成功后,返回的token user<object>:{ //用户对象 realname<string>, //用户名 username<string>, //登录名 id<int>, //用户id config<string>, //用户扩展信息,json字符串 mobilephone<string>, //电话号码 } } }
{ issuccess<bool>, //请求是否成功 resultcode<number>, //请求状态code }
class ionlineusermgr{ /// <summary> /// 将用户添加到在线用户列表,此方法需要对登入信息持久化 /// </summary> /// <param name="entity"></param> void add(iuserentity entity); /// <summary> /// 根据token移除对应的用户,此方法需要对登出信息持久化 /// </summary> /// <param name="token"></param> /// <returns></returns> bool remove(string token); /// <summary> /// 根据用户id移除用户,此方法需要对登出信息持久化 /// </summary> /// <param name="id"></param> /// <returns></returns> bool remove(int id); /// <summary> /// 从持久化层恢复在线用户 /// </summary> void load(); /// <summary> /// 获取所有在线用户 /// </summary> ilist<iuserentity> getall(); iuserentity get(int userid); }
class iuserentity{ userinfo userinfo { get; } string token { get; } /// <summary> /// 客户端信息 /// </summary> requestclientinfo clientinfo { get; } datetime logintime { get; } datetime expiredtime { get; } /// <summary> /// 用户登录配置 /// </summary> userauthoption option { get; } tokenentity gettokenentity(); }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论