else if (role.equals(UserType.TEACHER_USER.getCode())) { //若不是管理员,检查是不是老师 TeacherEntity teacherRes = loginService.teacherLogin(username, password); Optional.ofNullable(teacherRes).orElseThrow(() -> { return new BusinessCodeException(BusinessCode.USER_LOGIN_FAILURE.getMsg(), BusinessCode.USER_LOGIN_FAILURE.getCode()); }); UserVo userVo = new UserVo(); //封装页面用户实体 UserVo user = userVo.setUserId(teacherRes.getTeacherId()).setName(teacherRes.getTeacherName()).setRole(UserType.TEACHER_USER.getCode()); //生成jwt //过期时间 int expiredTime = Integer.parseInt(BusinessConstant.JWT_EXPIRED_TIME.getKey()); //分钟过期 String jwtTokenWithExpireTimeMinutes = JwtUtils.createJwtTokenWithExpireTimeMinutes(user, rsaProperties.getPrivateKey(), expiredTime, BusinessConstant.SYSTEM_JWT_PAYLOAD_KEY.getKey(), BusinessConstant.SYSTEM_JWT_ISS.getKey()); //设置redis过期时间 --测试(分钟) redisUtils.setKeyAndSetExpireTime(BusinessConstant.JWT_REDIS_KEY.getKey() + jwtTokenWithExpireTimeMinutes, user.getName() + ":" + user.getUserId(), expiredTime, TimeUnit.MINUTES); //返回token response.setHeader(BusinessConstant.JWT_REQUEST_HEAD.getKey(),jwtTokenWithExpireTimeMinutes); //封装返回类型 return ApiResultHandler.successResult(user); }
时间: 2024-02-14 22:04:44 浏览: 27
这段代码是用于用户登录验证的,如果登录的用户类型是老师,则调用 `loginService.teacherLogin(username, password)` 方法进行验证,如果验证成功,则将用户信息封装成一个 `UserVo` 对象,并生成一个 JWT token,然后将 token 放在响应头中返回。同时,将 token 存储到 Redis 中以便后续验证用户身份。最后,返回一个成功的响应结果,其中包含了用户信息。
相关问题
public void onReceive(Context context, Intent intent) { String action = intent.getAction(); assert action != null; if (action.equals(Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE)) { if (intent.hasExtra(Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE)) { String activeProfile = intent.getStringExtra(Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE); } } if (action.equals(Datawedeentity.ACTIVITY_INTENT_FILTER_ACTION)) { // Received a barcode scan displayScanResult(intent, "via Broadcast"); } }
这段代码是一个 BroadcastReceiver 的实现,用于接收不同的 Intent。在 if 分支语句中,当接收到 action 为 Datawedeentity.EXTRA_RESULT_GET_ACTIVE_PROFILE 的 Intent 时,会从 Intent 中获取 activeProfile 的字符串值。在另一个 if 分支语句中,当接收到 action 为 Datawedeentity.ACTIVITY_INTENT_FILTER_ACTION 的 Intent 时,会调用 displayScanResult 方法来显示扫描结果。
private class BleReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (BluetoothDevice.ACTION_FOUND.equals(action)) { // 找到设备 } else if (BluetoothDevice.ACTION_BOND_STATE_CHANGED.equals(action)) { // 设备绑定状态变化 } else if (BluetoothDevice.ACTION_PAIRING_REQUEST.equals(action)) { // 设备绑定状态变化 } else if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) { // 开始搜索 } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { // 搜索结束 } }} // 监听广播action:搜寻到蓝牙 IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(BluetoothDevice.ACTION_FOUND); // 找到设备 intentFilter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED); // 设备绑定状态变化 intentFilter.addAction(BluetoothDevice.ACTION_PAIRING_REQUEST); // 设备绑定状态变化 intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); // 开始搜索 intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); // 搜索结束 Log.d(TAG, "onStart: 监听搜寻到蓝牙的广播"); discoveryReceiver = new BleReceiver(); registerReceiver(discoveryReceiver, intentFilter); // 在不使用时注销广播接收器 unregisterReceiver(discoveryReceiver); }
这段代码是一个监听蓝牙广播的示例。在这里,一个名为 `BleReceiver` 的私有内部类被定义并继承自 `BroadcastReceiver`。`BleReceiver` 类被用来处理接收到的蓝牙广播,并根据不同的广播动作执行相应的操作。这个类只能在该类所在的外部类中被访问和使用,因为它被声明为私有的。
在代码的后面,`IntentFilter` 对象被创建并添加了多个蓝牙广播动作,然后创建了一个 `BleReceiver` 实例,并通过 `registerReceiver()` 方法进行注册以接收广播。最后,当不再需要接收这些广播时,需要调用 `unregisterReceiver()` 方法将 `BleReceiver` 实例注销掉。
需要注意的是,为了让这段代码能够正确工作,你需要在 AndroidManifest.xml 文件中添加相应的权限声明和广播接收器声明。