萌新刚到公司要开发个网站,用到公司的统一登录接口。公司统一认证给的文档是 spring-boot-oauth2 的,实际实现后发现打开任何页面立刻跳到统一登录页面,这样前端怎么办?没搞过前后端分离这种操作,请各位大佬给些意见。前端用的 vue,后端用的 springboot,跨域用 nginx 映射到同一个域解决的
1
yujunhao8831 2018-08-15 09:57:54 +08:00
cors
|
2
bayker 2018-08-15 11:52:03 +08:00
前端定义一个 URL 接收 登陆返回的 token (业余开发的回答)
|
3
kfg 2018-08-15 12:05:49 +08:00 via Android
我最近也搞这样的小东西,前端 vue,后端 php,cas 单点认证,我是在前端判断是否有 sessionstorage,如果没有就跳转到 cas 登录页面,返回 st,通过 ajax 和 st 去 cas 验证取得用户信息,保存在前端 sessionstorage,后续就跟后端通过 token 处理其他业务
|
4
lancelock 2018-08-15 12:40:05 +08:00 via iPhone
首先登录,拿到 token,存储在前端。之后根据本地是否有 token 来判断是否要重定向到登录页面,此外发起的 api 请求都带上 token 信息,给后端检验
|
5
strugglexiang 2018-08-15 13:13:25 +08:00
router.beforeEach 搞定
|
6
popvlovs 2018-08-15 15:01:39 +08:00
spring-boot-oauth2 的逻辑我记得应该是:未登录访问受限资源时后台 response302,这种情况下需要前端啥也不做,让浏览器重定向就好了啊
|
7
CFO 2018-08-15 15:11:27 +08:00 via Android
@popvlovs 不是 会返回 401 重定向需要 client 端发起 因为 oauth 登录需要 clientid clientserect 和 callbackuri server 端只重定向过去不能用
|
8
zhzer 2018-08-15 16:12:23 +08:00
spa 的话配置 vue-router 就完事了
|
9
bsg1992 2018-08-15 16:44:11 +08:00
你们是开发环境分离 还是部署上也是分离的?
|
10
realkaiway 2018-08-15 23:50:14 +08:00 via iPhone
前面的老哥基本回答的差不多了,通常的套路一般登录拿到 token,前端用 sessionStorage 储存好,之后的每一次 ajax 请求都在头部带上这个 token 给后端校验就谋问题啦~
|
11
popvlovs 2018-08-16 11:42:05 +08:00
@CFO 我理解也不是很深刻,但记得 clientid 和 clientsecret 应该是不能存放在浏览器的,所以怎么能用浏览器发起重定向呢(前端应该是不知道 client_id 和 client_secert 的)?我记得官方的例子是一个集成了 spring-boot-oauth-client 的后台应用返回 302 ( client_id, client_secert 和 redirect_uri 都拼好),然后指导浏览器进行跳转...
|
14
chunleioo123 2019-03-26 18:06:50 +08:00
@CFO 有一个 CAS 集成的问题,想请教你一下 麻烦回复我一下邮件 希望能交一个朋友或者提供适当报酬 邮箱 [email protected] 期待您的来信 谢谢
|
15
ivydom 2019-10-10 16:35:57 +08:00
用 authing 可以快速实现单点登录,快速体验:[https://sample.authing.cn/]( https://sample.authing.cn/),网站里有文档
|