权限管理系统_SpringCloud,OAuth2的RBAC权限管理系统

04f8648bc5b4fb955ce56854338ceab9.png

这是一款基于Spring Boot、 Spring Cloud 、OAuth2 的RBAC 权限管理系统。

github开源地址:

https://gitee.com/cjlgb/cjlgb-cloud-platform
  • 基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统

  • 基于数据驱动视图的理念封装 Ant Design Vue,即使没有 vue 的使用经验也能快速上手

  • 提供 lambda 、stream api 、webflux 的生产实践

79cd602050cc13c8514e3d7612b95a04.png

项目地址

注册时,手机号与验证码可随便填,目前暂时没有做校验

  • 在线预览:http://oauth.cjlgb.com:8888/

  • 前端代码:https://gitee.com/cjlgb/cjlgb-design-oauth

  • 后端代码:https://gitee.com/cjlgb/cjlgb-cloud-platform

核心依赖
依赖 版本
Spring Boot 2.2.5.RELEASE
Spring Cloud Hoxton.SR3
Mybatis Plus 3.3.2
Ant Design Vue 1.5.6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴为您解答这个问题。首先,让我们来看看如何使用缓存存储账号密码。 在 C# 中,可以使用 System.Web.Caching 命名空间中的 Cache 类来实现缓存。以下是一个简单的示例: ```csharp using System.Web; using System.Web.Caching; public static class CacheHelper { public static void AddToCache(string key, object value, int minutesToCache) { HttpContext.Current.Cache.Insert(key, value, null, DateTime.Now.AddMinutes(minutesToCache), Cache.NoSlidingExpiration); } public static object GetFromCache(string key) { return HttpContext.Current.Cache[key]; } public static void RemoveFromCache(string key) { HttpContext.Current.Cache.Remove(key); } } ``` 在上面的代码中,AddToCache 方法用于将值存储到缓存中,GetFromCache 方法用于从缓存中检索值,RemoveFromCache 方法用于从缓存中删除值。minutesToCache 参数指定了缓存的时间,以分钟为单位。 现在,让我们来看看如何实现简单的注册和登录功能。以下是一个基本的示例: ```csharp using System; using System.Collections.Generic; public static class UserDatabase { private static Dictionary<string, string> users = new Dictionary<string, string>(); public static void RegisterUser(string username, string password) { if (!users.ContainsKey(username)) { users.Add(username, password); } else { throw new Exception("User already exists"); } } public static bool LoginUser(string username, string password) { if (users.ContainsKey(username) && users[username] == password) { CacheHelper.AddToCache(username, password, 10); return true; } else { return false; } } public static bool LogoutUser(string username) { CacheHelper.RemoveFromCache(username); return true; } public static bool IsLoggedIn(string username) { return CacheHelper.GetFromCache(username) != null; } } ``` 在上面的代码中,UserDatabase 类用于存储用户账号和密码。RegisterUser 方法用于注册用户,LoginUser 方法用于登录用户,LogoutUser 方法用于登出用户,IsLoggedIn 方法用于检查用户是否已经登录。当用户成功登录时,它会将用户的用户名和密码存储到缓存中,并在 10 分钟后过期。 现在,让我们来看看如何实现单点登录。Spring Cloud OAuth2 是一个开源项目,可以帮助您实现 OAuth2 协议。以下是一个简单的示例: ```csharp using System.Collections.Generic; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace SSO.Controllers { [ApiController] [Route("[controller]")] public class UserController : ControllerBase { private readonly ILogger<UserController> _logger; public UserController(ILogger<UserController> logger) { _logger = logger; } [HttpGet] public IEnumerable<string> Get() { return new string[] { "Welcome to Single Sign-On" }; } [HttpPost] [Route("login")] public IActionResult Login(User user) { if (UserDatabase.LoginUser(user.Username, user.Password)) { return Ok(); } else { return Unauthorized(); } } [HttpPost] [Route("logout")] public IActionResult Logout(User user) { if (UserDatabase.LogoutUser(user.Username)) { return Ok(); } else { return NotFound(); } } [HttpGet] [Route("isloggedin")] public IActionResult IsLoggedIn(User user) { if (UserDatabase.IsLoggedIn(user.Username)) { return Ok(); } else { return Unauthorized(); } } } public class User { public string Username { get; set; } public string Password { get; set; } } } ``` 在上面的代码中,UserController 类用于处理用户的登录和登出请求,IsLoggedIn 方法用于检查用户是否已经登录。当用户登录时,它会将用户的用户名和密码存储到缓存中,并在 10 分钟后过期。 以上是一个简单的示例,仅供参考。如果您想要实现更复杂的功能,可以参考更多的教程和文档。希望这个答案可以帮助到您,谢谢!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值