IdentityServer4之持久化很顺手的事 (2)

IdentityServer4之持久化很顺手的事

这时候对应的数据库就生成了,而且对应配置相关的表已经在数据库创建:

IdentityServer4之持久化很顺手的事

再同步PersistedGrantDbContext

IdentityServer4之持久化很顺手的事

这个表少,就两张:

IdentityServer4之持久化很顺手的事

其实这样就已经可以啦,只要在数据库对应的表中添加对应的数据,就能进行操作啦; 那新手小伙伴肯定得苦恼啦,这么多表,咋知道哪个表存啥数据啊;不急,咱们把原来内存中的数据存进去,然后再看看每个表存了啥,这不就更加明了啦,比一个一个表说的还直接,这种方式还能促使小伙伴动手,不然都不知道里面存了啥(哈哈哈,高招)。那就多出来第四步,如下......

加个种子数据美美哒

这里说的种子数据就是指原来在内存中数据,把它们读出来存到数据库中就行;很简单,通过上文对应直接存即可,代码如下:

IdentityServer4之持久化很顺手的事

方法写好啦,直接在Configure中调用即可,如下:

IdentityServer4之持久化很顺手的事

这样就完工啦,把授权服务器、资源服务器、客户端都启动,走一遍流程,看看是不是成功啦,不出意外一切顺利,这时再返过来看看每个表中都存啥数据,就真的很清晰啦。这里就不一一截图说,相信小伙伴都能搞得明白。

到这肯定有小伙伴要说话啦,用户那还是用的内存;之所以没放到上面一起说,那是因为用户这块的控制权完全在我们自己手里,可以自己设计(就是用户、菜单、角色那一套),也可以集成微软封装好的Identity(把常用的用户那一套已经封装啦)。

这里演示肯定挑着爽的玩,就集成微软封装好的Identity,来,继续撸码:

引入相关nuget包

IdentityServer4之持久化很顺手的事

引入的包简单说明

IdentityServer4.AspNetIdentity:IdentityServer4对微软封装的Indentity的支持;

Microsoft.AspNetCore.Identity.EntityFrameworkCore:对Identity提供EF支持;

撸码就对啦

因为IdentityDbContext是抽象类,不能直接使用,这里需要针对IdentityDbContext定义一个子类ApplicationDbContext,如下:

IdentityServer4之持久化很顺手的事

然后在Startup.cs中注册相关服务即可:

IdentityServer4之持久化很顺手的事

迁移及同步:这里没有指定输出路径,小伙伴根据自己的需要进行指定。

IdentityServer4之持久化很顺手的事

数据库中生成相关的表,如下:

IdentityServer4之持久化很顺手的事

更改登录和登出逻辑

IdentityServer4之持久化很顺手的事

登出的时调用 _signInManager.SignOutAsync();即可

加点种子数据,即程序启动时加入用户数据

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzzdyd.html