V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wuzhizuiguo  ›  全部回复第 3 页 / 共 5 页
回复总数  92
1  2  3  4  5  
2020-04-02 14:51:05 +08:00
回复了 rapperx2 创建的主题 职场话题 经过一段时间崩溃之后,终于找到了工作,薪资还算理想
加油, 比工地好太多了.
2020-04-01 16:11:33 +08:00
回复了 bigboss519 创建的主题 生活 姐姐出嫁后,父母帮助姐姐的做法是否正确?
父母的钱是全家庭的钱. 如果能开明到 子女姓能跟女方这边姓,那没什么问题. 但是基本 养老还是得依靠"儿子", 这明显该偏向儿子一点. 从主题看, 楼主达不到 "男女平等"的条件.
最讨厌是开口就是"父母的钱又不是你挣得,怎么用子女说了不算", 这不是一个家的正常样子
2020-03-23 13:35:45 +08:00
回复了 star7th 创建的主题 分享创造 我觉得 [时光树洞] 被某个校园媒体翻牌了
之前我看了大佬的时光树洞,自己也萌生也想做一个的想法(楼主还回答我了), 主要是用来学习的(增加经验的),看看自己能不能弄一个简易版出来. 从买阿里云服务器, 公众号什么的, 对个人提升还是很大的,可以熟悉这些工具. 现在是能发邮件了(不会前端, 仅做学习), 简易楼主可以结合公众号,微信登录, 还有邮件的发送,里面的内容可以调一下敏感词检测接口(楼主这个我没有尝试发敏感词邮件), 可以试一下 NLP 腾讯云自然语言处理, 这又让我第一次使用了腾讯云(接口每天有免费额度)
头晕. 暂时放弃了.
选用 将 token(存 redis) 或者 JWT token , 在 tokenFilter(继承 GlobalFilter)中放入 header 之中(jwt 参照 https://blog.csdn.net/CrazyLai1996/article/details/86430457)

然后取本人的数据信息,则使用 @RequestHeader("X-USER-ID") String userId 这种形式去取数据,

那么如果权限高一点的(例如管理员), 那么 RPC 调用其他用户的邮件列表, 可以使用如下方法

用户访问自己的:
@PostMapping("/mail/list")
public Result x(@RequestHeader(value = "auth-userId",required = false)Long authUserId){
return mailService.list(authUserId);
}

用户访问别人的
@PostMapping("/mail/list/{userId}")
public Result maillist(@PathVariable("userId") Long userId){
return mailService.list(userId);
}

RPC 方法
@PostMapping("/user/test/mail/list/{userId}")
public Result mm(@PathVariable("userId")Long userId);

这个 RPC 方法能不能调用, 还是需要 更上面一层的 token 来区分的, 例如传的 userId 能不能不是他本人的, 需要配合 role /permission, 来决定.

即: 这种可能是, /admin/user/list , 然后可以传入 userId 参数, 加上自己的 header 中的 token,来决定 给 rpc 方法中传递的 userId 到底是直接的,还是别人的.

在这个问题中,我最大的困扰是, 怎么将 token 背后的用户信息良好的传递到各个服务中去,
我觉得比较麻烦,但是可行的是, 每个方法里都加个 token 或者 httpservletrequest, 每次需要的时候 都去根据 header/ token (再根据 redis 其他的转换成信息), 但是想想每个 controller service rpc 方法都要带上 token 或者其他的 那也太恐怖了, 不过还有一点.. 如果一个 controller 方法 含有 Httpservletrequest, 那么它的 rpc 方法大概也得带着这么个参数, 那会一直循环循环吗?

还有就是, 各个服务全关了外网端口, 所有请求都要经过除了网关外的 另一个特定服务, 例如 admin,在这个地方进行鉴权, 查看有没有对应的权限 /数据权限,

还是经验不足啊...
好..
@yang957862615 这个方法 重写请求头 header 的时候, 需要重新 build 一下,不能直接取出来写入. http://lhyd.top/?p=312761
//向 headers 中放文件,记得 build
ServerHttpRequest host = exchange.getRequest().mutate().header("a", "888").build();
//将现在的 request 变成 change 对象
ServerWebExchange build = exchange.mutate().request(host).build();
return chain.filter(build);
2020-03-12 14:28:19 +08:00
回复了 withablink 创建的主题 分享创造 部署了个 AI 人脸生成器,欢迎大家测试速度 😂
女性的图片挺好看的, 不知道这脸是不是真实存在.
@humpy @RequestHeader("X-USER-ID") String userId 这个单纯请求是可以的. 但是其他服务 rpc 调用这个接口怎么办?
@PostMapping(value = "/list")
public Result list(@RequestHeader(value = "X-USER-ID", required = false) Long userId);
RPC 方法:
@PostMapping(value = "/user/mail/list")
public Result mailList(@RequestParam("userId") Long userId);

rcp 调用方法里里面的 userId,没有成功传入到 user-service,因为没有 header
@caotian 谢谢. 是的, jwt token 也可以.
@humpy 还可以这样.. 第一次看到 谢谢.
@yang957862615 谢谢. 那再下个服务里怎么获取到这个 header 里的值呢? 感觉方法里还是需要添加 HttpServletRequest 参数...
@hantsy 是的.. 网关是对外的,如果网关通过了, 那按照我这种,确实是可以按照它的接口权限 访问对应的接口 /服务. 有博客也提到了 spring security . 谢谢, 我也去了解学习下
@hantsy 这个我看网上是这样的, 其他的 service 不对外开放(放到内网 或者防火墙关了访问端口), 即经过网关校验后 各个服务之间是可以信任的.
@359889741 谢谢, 这样感觉可行, 是收经过网关 需要鉴权的的都要 把 token 里的 userId 取出来了. 是指修改请求的参数, 把 userId 放入到 post 的请求 body 里 或者 get 的 param 中吗
@gaius 谢谢. 这样在 user-service 里, 对应的方法怎么获取 header 里的写入的信息, 感觉需要在接收的 controller 方法里,添加上 HttpServletRequest 参数, 这样的话 admin 等其他服务也 rpc 调用这个接口 会不会有影响.
2020-03-03 10:23:03 +08:00
回复了 rapiz 创建的主题 分享创造 我的大一 C 课设, DungeonRush,觉得做的还不错,分享一下~
优秀,强...
2020-03-03 10:19:44 +08:00
回复了 skypyb 创建的主题 Blogger 有一个持续更新了两年的博客,终于 有一天带给了我惊喜
恭喜!
2020-01-15 15:38:42 +08:00
回复了 extra888 创建的主题 分享创造 写了个小程序——鲸图君
很好.
2020-01-13 14:11:51 +08:00
回复了 djnwzs 创建的主题 全球工单系统 有没有大佬帮我解决一下微信站长认证失败的问题
注意,txt 文件名, 和 txt 实际内容是否一致. 我原以为是一致的,但是认证失败. 可以去 nginx 的 error.log(access.log)里去看微信请求的路径,然后对应去复制粘贴. centos7 的是 /var/log/nginx/error.log 里.
当然还可以直接在微信里,或者楼上 "xmumiffy "提到的 http://urlsec.qq.com/complain.html 直接申诉. 我两个都试过, 当然是直接放 txt 快一些.(只要路径对了)
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5413 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 08:57 · PVG 16:57 · LAX 01:57 · JFK 04:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.