前后端分离oauth2咨询

前后端分离oauth2咨询

目前内部项目打算用oauth2认证授权,是前后端分离的,前端是用的VUE SPA模式,vue前端和app客户端都打算使用oauth2密码模式接入认证服务器,oauth2客户端的密钥放在app客户端肯定不安全吧?那如何保证客户端密钥的安全呢?或者app该采用什么模式?


回答:

oauth2 认证的时候可以将前端作为 oauth2 概念中的客户端,也可以是一个独立的后端服务作为客服端。

如果前端作为客户端,那前端就要参与 oauth2 的认证流程,在未登录时前端跳转到 oauth2 登陆地址,然后由服务器重定向到登录页,用户登录后将会在路径参数中得到授权码 code,前端在使用 code 往服务器(不一定是认证服务器)申请 access_token 完成登陆,过程中通常只有 code 会停留在前端,而 code 是一次性的不可以多次使用。

其次还有 refresh_token 是不要保存在前端的,就算前端作为客户端参与 oauth2 认证流程,rerefsh_token 也应该由后端托管。

在 oauth2.1 中密码模式已弃用,非信任客户端建议都是用授权码模式。

在 app 中,需要有一个专门的后端服务作为客户端,在 app 可以保证 session 统一,一般可以客户端参与 oauth2 认证流程之后,app 和客户端使用 session 保持登陆状态,当然使用 token 的形式也没问题。


回答:

前后端分离当然是后端验证权限啊。OAuth2会有前端回调和后端回调,登录成功前端回调会跳转到指定的URL,并带上一个用于验证的code,需要将这个code发给后端去验证


回答:

你的app总不能没有自己的后端服务吧,既然是密码模式,你自己服务后端提供前端获取token的接口,前端自己传入参数请求这个接口,后端自己去发起请求获取token,这就不依赖前端重定向到认证服务的登录页面了

以上是 前后端分离oauth2咨询 的全部内容, 来源链接: utcz.com/p/937101.html

回到顶部