类 ScxAuth
java.lang.Object
cool.scx.ext.organization.auth.ScxAuth
提供基本的认证逻辑
todo 这里的用户登录信息应该做一个缓存 防止多次从数据库中读取
- 版本:
- 1.1.4
- 作者:
- scx567888
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static voidaddThirdPartyLoginHandler(String type, ThirdPartyLoginHandler<?> thirdPartyLoginHandler) 添加一个 第三方的 loginHandlerstatic AlreadyLoginClient[]alreadyLoginClients.static AlreadyLoginClientMapalreadyLoginClientMap.static ThirdPartyLoginHandler<?>根据名称查找第三方的 loginHandlerstatic AlreadyLoginClientastatic DeviceTypegetDeviceTypeByHeader(io.vertx.ext.web.RoutingContext routingContext) 获取用户的设备static <T extends BaseUser>
T获取登录用户static <T extends BaseUser>
TgetLoginUser(io.vertx.ext.web.RoutingContext ctx) 根据唯一标识 获取 用户static <T extends BaseUser>
TgetLoginUserByToken(String token) 根据 token 获取用户static PermsWrappergetPerms()简单封装方便使用static PermsWrapper根据用户获取 权限串static boolean查看当前登录用户是否有对应的权限static boolean查看当前登录用户是否有对应的权限static voidinitAuth(Class<? extends BaseUserService<?>> userServiceClass, Class<? extends BaseDeptService<?>> deptServiceClass, Class<? extends BaseRoleService<?>> roleServiceClass) 初始化 auth 模块static String登录方法static StringloginByThirdParty(String uniqueID, String accessToken, String accountType, io.vertx.ext.web.RoutingContext ctx) astatic void从文件中读取 LoginItemstatic voidremoveAuthUser(io.vertx.ext.web.RoutingContext ctx) 移除认证用户static BaseUsersignupByThirdParty(String uniqueID, String accessToken, String accountType) 根据第三方注册一个新用户static void写入 LoginItem 到文件中
-
构造器详细资料
-
ScxAuth
public ScxAuth()
-
-
方法详细资料
-
initAuth
public static void initAuth(Class<? extends BaseUserService<?>> userServiceClass, Class<? extends BaseDeptService<?>> deptServiceClass, Class<? extends BaseRoleService<?>> roleServiceClass) 初始化 auth 模块 -
getLoginUser
获取登录用户- 类型参数:
T- a T class- 返回:
- r
-
getPerms
简单封装方便使用- 返回:
- s
-
readSessionFromFile
public static void readSessionFromFile()从文件中读取 LoginItem -
writeSessionToFile
public static void writeSessionToFile()写入 LoginItem 到文件中 -
getLoginUser
根据唯一标识 获取 用户这里并没有将用户直接存储到 session 中
而是通过此接口进行查找是为了保证用户信息修改后回显的及时性
- 类型参数:
T- a T class- 参数:
ctx- c- 返回:
- 用户
-
getLoginUserByToken
根据 token 获取用户 -
getAlreadyLoginClient
a- 返回:
- a
-
getDeviceTypeByHeader
获取用户的设备- 参数:
routingContext- aRoutingContextobject- 返回:
- a
-
removeAuthUser
public static void removeAuthUser(io.vertx.ext.web.RoutingContext ctx) 移除认证用户使用默认的 路由上下文
- 参数:
ctx- aRoutingContextobject
-
allAlreadyLoginClients
alreadyLoginClients.
- 返回:
- a
Listobject
-
getPerms
根据用户获取 权限串- 参数:
user- 用户 (这里只会使用用户的唯一标识 所以其他的字段可以为空)- 返回:
- 权限字符串集合
-
hasPerm
查看当前登录用户是否有对应的权限- 参数:
permString- 权限串- 返回:
- 是否拥有这个权限
-
hasPerm
查看当前登录用户是否有对应的权限- 参数:
permFlag- 权限串- 返回:
- 是否拥有这个权限
-
login
登录方法- 参数:
username- 用户名password- 密码ctx- ctx- 返回:
- json
-
loginByThirdParty
public static String loginByThirdParty(String uniqueID, String accessToken, String accountType, io.vertx.ext.web.RoutingContext ctx) a- 参数:
uniqueID- aaccessToken- aaccountType- actx- a- 返回:
- a
-
signupByThirdParty
根据第三方注册一个新用户- 参数:
uniqueID- aaccessToken- aaccountType- a- 返回:
- a
-
findThirdPartyLoginHandler
根据名称查找第三方的 loginHandler- 参数:
type- 类型- 返回:
- handler
-
addThirdPartyLoginHandler
public static void addThirdPartyLoginHandler(String type, ThirdPartyLoginHandler<?> thirdPartyLoginHandler) 添加一个 第三方的 loginHandler- 参数:
type- 名称thirdPartyLoginHandler- handler
-
alreadyLoginClientMap
alreadyLoginClientMap.
- 返回:
- a
AlreadyLoginClientMapobject
-