V2EX qqlyatt
 qqlyatt 最近的时间轴更新
qqlyatt

qqlyatt

V2EX 第 249188 号会员,加入于 2017-08-17 13:10:09 +08:00
qqlyatt 最近回复了
2023-09-28 18:25:08 +08:00
回复了 sakurawzt 创建的主题 Java SpringBoot 和 OAuth2.0(整合失败/鉴权失败)
没实现过 spring securiy + OAuth2 的话,推荐看慕课网 jojo 老师的课程:《 Spring Security+OAuth2 精讲,打造企业级认证与授权》。这个课程跟着做两三遍差不多就能理解流程了,但是好像不是最新的 spring security + OAuth2 ,那么这个时候还有时间的话,你可以看官方文档了。Spring Security 6 + Spring Authorization Server 1.1.2 就是当前时间节点的最佳实践了。跟着官方文档,对照流程过亿遍。其实自己练习的话还是要按照真实的 RBAC 来设计的,这个是难点,可能在你懂得 security 流程之后,要好好整理的一个点。后期设计的时候尽量按真实的来,会更有意义,最好能前端后端一起来。
2023-02-15 22:41:15 +08:00
回复了 chaleaochexist 创建的主题 程序员 微服务架构中, 前端是如何部署的
你应该这么想:1.只有页面和后端,那就后端和前端都部署在同一个 tomcat 服务器里,也就不存在跨域请求了。你要想部署在不同的容器服务器里,那就开启跨域。2.后端是后端,包括网关以及后面的授权 server ,业务 server 等等一大摞。前端是前端,包括 nodejs server ,nodejs 里放置你的页面,页面无论是 vue 做的还是 react 做的还是其他什么的都可以放置到前端 nodejs 服务器里。然后页面 axios 请求前端 nodejs 服务器,例如 /ac/fun ,那么你前端服务器假如是 https://43.22.22.11:443/,这个请求就会直接达到 https://43.22.22.11:443/ac/fun 。然后你前端服务器向后端服务器请求 API 。|||服务器与服务器之间请求不存在跨域|||。网关过滤 /ac 指向你的业务 server ,业务 server 响应,传回前端服务器,前端服务器响应页面 axios 。
我认为大概是这样的结构:前端页面,前端服务器,网关,授权服务器,业务资源服务器也就是 API 服务器。流程大概是这样的:用户点击某些简单功能时,不需要知道用户是谁,也就不用登录;当用户点击某些重要功能是,要知道用户是谁,有没有请求这个功能 API 的权限。用 OAUTH2+JWT 模式的话,这时候就要前端服务器就要携带授权类型 header 和 redirect_uriheader 跳转到授权服务器的登录页面,让用户输入身份信息(一般是用户名密码),授权服务器验证完用户的身份信息,验证失败就返回 401 未认证成功响应,验证成功就返回授权码。前端服务器再拿着授权码并携带自己的身份信息 client_id 和 client_secret ,redirect_uri 向授权服务器请求 Token ,授权服务器验证成功,响应 Token 。||||前端服务器保存 Token 。||||当用户点击业务功能 API 时,前端服务器为这个 request 携带上 Token ,请求到网关,由于网关启动时已经从授权服务器获取了验证 Token 的公钥,这时候就验证这个 Token 可用性和未被修改就行了,验证成功后,网关放行跳转到指定的业务资源 API ,资源服务器给出业务响应。这样整个流程就结束了。
当然有了,你打开黑马程序员官网,看看前端课程大纲。那就是从无到有的过程啊~
2021-11-24 20:12:42 +08:00
回复了 MeloForsaken 创建的主题 程序员 网关转发到鉴权,鉴权再转到业务怎么写?
网关上那个过滤请求 Header 的过程就叫做《鉴权》。
2021-11-24 20:10:48 +08:00
回复了 MeloForsaken 创建的主题 程序员 网关转发到鉴权,鉴权再转到业务怎么写?
使用 Java 开发正常的业务流程应该是:1.普通浏览不用登录,用户点击某个特殊的 api 或者按钮需要登录。2.需要登录,前端页面,引导用户跳转进入《认证服务器 Authorization-Server 》的《认证》页面,用户在认证页面输入用户名密码或者手机号验证码,确认用户《身份》。3.确认用户后,《认证服务器》返回给前端授权码 authorization_code ,前端 NodeJS 服务器拿着授权码并组织一次 post 请求,在 POST 请求中携带自身的客户端用户名密码以及 redirect_uri ,这个是在《认证服务器》中注册过的客户端 client ,是把前端应用当作一个外来的客户端。这个 redirect_uri 是用来接收令牌 Token 的。《认证服务器》确认过全段服务器的用户名,密码和授权码,再验证当时注册 client 时填写过的 redirect_uri ,一致后,响应一个带有当前用户《身份权限》信息的 Token 。然后前端 NodeJS 将该 Token 存储起来存哪自己看 cookie,session,redis 。每次该用户调用资源服务的时候,也就是你的业务功能的时候,NodeJS 将他的令牌 Token 拿到,用一个类似过滤器的 func 将每次请求的请求头 Header 都加上 Key:Authorization Value:Bearer Token 值。这个请求可以直接发到网关上,也可以不用网关,直接请求到资源服务里,资源服务也能解析这个 Token 确认用户有没有权限请求这个资源。不过你是用网关的,所以,这个请求发到网关上,然后网关上过滤这个请求 Header ,验证这个用户的权限是否和他请求的资源地址匹配,如果不匹配,做出响应 403 无权限响应。如果匹配那就通过,并转发到资源服务器,获取资源服务器响应。如果你配置了 OAuth2+JWT ,网关过滤这一块不用手敲了,只需要简单的配置几下就行。
2021-09-26 16:35:43 +08:00
回复了 qqlytt 创建的主题 分享发现 我好像发现了发猕猴桃的老哥了
前几天才在 V 站看到发猕猴桃的,是不是这个老哥 - -
2021-06-26 14:29:44 +08:00
回复了 iyear 创建的主题 教育 这些 211 的计算机和杭电计算机选哪个
有两种选择路径 1 一定要上某个专业,无论哪个学校。2 一定要上 985 类院校,无论哪个专业。那么。。。。。你想学软件,瞧瞧现在招聘第一条,985 211 优先。对吗?
2021-06-18 10:50:25 +08:00
回复了 IdJoel 创建的主题 Node.js 请教一个问题,做中间件的意义是什么?
我觉得是为了 SEO,好像是这个词。Node 渲染出整个页面,供浏览器爬取。另一个,前端服务器可以看做第三方调用你的后台,也有自己的处理逻辑,并不是后端传什么,页面显示什么。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5792 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 13ms UTC 02:46 PVG 10:46 LAX 19:46 JFK 22:46
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86