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
回复了 qqlyatt 创建的主题 分享发现 我好像发现了发猕猴桃的老哥了
前几天才在 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   ·   实用小工具   ·   5336 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 07:24 · PVG 15:24 · LAX 23:24 · JFK 02:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.