支持登录返回值中携带token

pull/783/head
648540858 2023-03-15 22:56:47 +08:00
parent 5fab97cf7e
commit efbc3a31c0
5 changed files with 35 additions and 26 deletions

View File

@ -99,15 +99,16 @@ https://gitee.com/pan648540858/wvp-GB28181-pro.git
- [X] 支持接口鉴权
- [X] 云端录像,推流/代理/国标视频均可以录制在云端服务器,支持预览和下载
- [X] 支持打包可执行jar和war
- [X] 支持跨域请求,支持前后端分离部署
# 遇到问题如何解决
国标最麻烦的地方在于设备的兼容性,所以需要大量的设备来测试,目前作者手里的设备有限,再加上作者水平有限,所以遇到问题在所难免;
1. 查看wiki,仔细的阅读可以帮你避免几乎所有的问题
1. 查看文档网站,仔细的阅读可以帮你避免几乎所有的问题
2. 搜索issues这里有大部分的答案
3. 加QQ群901799015这里有大量热心的小伙伴但是前提新希望你已经仔细阅读了wiki和搜索了issues。
4. 你可以请作者为你解答,但是我不是免费的。
5. 你可以把遇到问题的设备寄给我,可以更容易的复现问题。
5. 你可以把遇到问题的设备寄给我,可以更容易的兼容设备和解决问题。
# 使用帮助
QQ群: 901799015, ZLM使用文档[https://github.com/ZLMediaKit/ZLMediaKit](https://github.com/ZLMediaKit/ZLMediaKit)

View File

@ -22,18 +22,33 @@
5. 生产环境按需开放端口但是建议修改默认端口尤其是5060端口易受到攻击;
6. zlm使用docker部署的情况要求端口映射一致比如映射5060,应将外部端口也映射为5060端口;
7. 启动服务以linux为例
**启动WVP-PRO**
jar包
### 启动WVP-PRO
**jar包**
```shell
nohup java -jar wvp-pro-*.jar &
```
war包
**war包**
下载Tomcat后将war包放入webapps中启动Tomcat以解压war包停止Tomcat后删除ROOT目录以及war包将解压后的war包目录重命名为ROOT将配置文件中的Server.port配置为与Tomcat端口一致
然后启动Tomcat。
**启动ZLM**
```shell
nohup ./MediaServer -d -m 3 &
```
### 前后端分离部署
前后端部署目前在最新的版本已经支持请使用3月15日之后的版本部署
前端编译后的文件在`src/main/resources/static`中,将此目录下的文件部署。
前后端分离部署最大的问题是跨域的解决之前版本使用cookie完成登录流程而cookie是不可以在复杂跨域中使用的。所以当前版本使用JWT生成的TOKEN作为认证凭据
部署前端后需要在wvp中配置前端访问的地址以完成跨域流程。
加入你的服务有公网域名为xxx.com公网IP为11.11.11.11 那么你可以在wvp中这样配置
```yaml
user-settings:
# 跨域配置,配置你访问前端页面的地址即可, 可以配置多个
allowed-origins:
- http://xxx.com:8008
- http://11.11.11.11:8008
```
配置不是必须的你使用哪个ip/域名访问就配置哪个即可。修改配置后重启wvp以使配置生效。
[接入设备](./_content/ability/device.md)

View File

@ -22,7 +22,6 @@ public class AnonymousAuthenticationEntryPoint implements AuthenticationEntry
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) {
System.err.println(e.getMessage());
String jwt = request.getHeader(JwtUtils.getHeader());
JwtUser jwtUser = JwtUtils.verifyToken(jwt);
String username = jwtUser.getUserName();

View File

@ -19,6 +19,8 @@ public class LoginUser implements UserDetails, CredentialsContainer {
*/
private User user;
private String accessToken;
/**
*
@ -99,4 +101,11 @@ public class LoginUser implements UserDetails, CredentialsContainer {
}
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
}

View File

@ -42,7 +42,9 @@ public class UserController {
@GetMapping("/login")
@PostMapping("/login")
@Operation(summary = "登录")
@Operation(summary = "登录", description = "登录成功后返回AccessToken 可以从返回值获取到也可以从响应头中获取到," +
"后续的请求需要添加请求头 'access-token'或者放在参数里")
@Parameter(name = "username", description = "用户名", required = true)
@Parameter(name = "password", description = "密码32位md5加密", required = true)
public LoginUser login(HttpServletRequest request, HttpServletResponse response, @RequestParam String username, @RequestParam String password){
@ -57,28 +59,11 @@ public class UserController {
}else {
String jwt = JwtUtils.createToken(username, password);
response.setHeader(JwtUtils.getHeader(), jwt);
user.setAccessToken(jwt);
}
return user;
}
// @GetMapping("/logout")
// @PostMapping("/logout")
// @Operation(summary = "登出")
// public LoginUser logout(){
// LoginUser user;
// try {
// user = SecurityUtils.login(username, password, authenticationManager);
// } catch (AuthenticationException e) {
// throw new ControllerException(ErrorCode.ERROR100.getCode(), e.getMessage());
// }
// if (user == null) {
// throw new ControllerException(ErrorCode.ERROR100.getCode(), "用户名或密码错误");
// }else {
// String jwt = JwtUtils.createToken(username, password);
// response.setHeader(JwtUtils.getHeader(), jwt);
// }
// return user;
// }
@PostMapping("/changePassword")
@Operation(summary = "修改密码")