手把手撸套框架-登录设计

目录

登录设计,这个话题真的是可大可小,过往在Winner框架中 一直是 使用SSO 做登录,之前也写过基于Outh2.0做授权登录,

但是现在我任职的这个家企业,虽然对于SSO也有需要,但是目前这一块需求还是不那么强烈,各个系统之间都是独立去管控的。

这让6月份刚入职时候的我,上来就准备以SSO(单点登录)的方式去处理,基于IdentityServer4 (以下简称Id4)完成了一个。

参考资料:

http://www.identityserver.com.cn/

http://www.tnblog.net/heart320/article/details/3046

https://www.cnblogs.com/stulzq/p/8119928.html

这个我就不多说了,关于这个的资料,网上实在太多了,最后项目发布的时候,后来公司只给我一个子域名的权限,这个当时就尴尬了。

这属于 人为造成的问题,公司就一个域名,就分配一个二级域名给我,后来我想用端口的 方式去解决。最后还是放弃了。

所以放弃了 使用 SSO了。 这个事导致了 对Victory 从 “大框架” 直接 转为"小框架"。

大框架就是 各个项目都是独立系统比如: 权限系统,登录中心,调度系统,日志系统。都是独立站点,独立部署,新项目上线只需要配置,然后调接口就行。

小框架则是,各个功能集成在一个站点里面: 登录功能,权限功能,调度功能,日志功能。 新建一个项目,就直接附带了这些功能,然后写核心业务。

所以,直接这也取决于,我就做一个小项目,别一上来就部署五六个站点。这一点“工厂型企业” 和 “互联网企业” 有很大区别。(不过后续在公司推广 “大框架”概念,慢慢的公司的人也接受大框架的概念了)

从大框架 转为了小框架, 导致了我对 前后端分离,都产生了犹豫,虽然我给Victory框架制定了这么一个发展路线。

1.x   前后端不分离,虽然使用Vue 但是更多的是做MVVM 数据绑定。主要技术选项: Core3.1 (mvc) + Sqlserver+  FreeSql  + Bootstarp + Jquery + AdminLte + Vue

2.x    前后端分离,完全使用Vue,前端统一elemnet-ui,主要技术选项:  Core3.1 (mvc) + Sqlserver+  FreeSql  + Vue +  vue-element-admin

至此,在登录方式上,我们就产生了三种方式:

1,基于id4  ,做SSO授权中心, 这个估计公司认可我的思路之后,有机会做大框架架构的时候,才有机会实施。

2,基于 Authorize, 这个是Core过滤器 自带这么一个 功能,直接用就好了。

3,基于Jwt , 做前后端分离以及客户端进行对接的时候,等Victory 2.0  实施的时候 就可以用这种方式去实施。

今天重点讲的还是 基于core 自带的登录功能,也是最简单的一种,三步走:

step1:将身份认证中间件添加到容器中:

step2:制作一个登录界面,登录成功将信息写入cookie:

  

step3: 在需要登录之后才能访问的页面控制器上打上 过滤器标签:

 三步即可完成一个登录了, 方便了很多,传统的方式是 去写一个session,然后每个控制用基类里面 添加 session判断去处理验证登录。

这里就简单的讲了一下 如何用  Authorize 过滤器 去实现登录功能,另外还列了一下 另外两种,一个是大框架的 Id4,一个前后端分离的Jwt,

当然我这里这么分类 也不一定正确, Id4 也可以使用 jwt 做数据传输。  他们三种实现登录的方式并不是 一个并列关系,硬要并列Jwt 应该是和Cokkie是一种并列关系。

所以这里我的Victory1.0 是使用 Authorize 基于Cookie 实现,等升级到2.0的时候 ,我会去基于Jwt 的格式去实现。

原文地址:https://www.cnblogs.com/demon28/p/13761149.html