请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

前后端分离项目,第三方登录可否回调url填写前端url?

最近又在琢磨第三方登录,课程中是回调后端接口,通过重定向到首页实现登录。
但是实际中项目通常是分开部署,前端和后端没有部署在一起,无法在后端实现重定向。
可否在第三方登录回调url的位置填前端页面的url,也就是成功授权之后,直接跳转到首页,首页判断是否有code,如果有code则通过ajax等异步带着code请求后端,后端再去调用第三方接口获取access_token并获取用户相应信息并绑定账号或新建账号,然后返回给前端用户信息,这样就避免了重定向的方式?

正在回答 回答被采纳积分+3

1回答

bobby 2018-11-27 19:41:02

因为第三方登录成功后,还需要去获取用户的相关信息,这些都需要在一个流程中操作,所以对于第三方登录的网站中回调的url一定是我们的后端接口, 后端接口在此时如何操作其实都好说, 比如像课程一样,直接在后端中返回html,像你说的 直接后端将code带到url中返回给前端,前端获取这个参数写入到cookie中也是可以的, 但是这样对前端的要求就高了。 我之前也考虑过这种做法,只是这种做法显得生硬

0 回复 有任何疑惑可以回复我~
  • 提问者 烈焰卡卡 #1
    是的老师,我的想法是通过前端获取code,然后请求后端,由后端完成剩下的所有获取逻辑。如果直接返回后端,对于前后端分离的项目来说,还有什么好的办法能最终返回到在前端服务器部署的页面上么?
    回复 有任何疑惑可以回复我~ 2018-11-27 19:44:46
  • bobby 回复 提问者 烈焰卡卡 #2
    code不要反悔给前端。这样容易造成不安全,直接然让第三方返回给后端服务器,后端生成好jwt token后给前端就行了。 jwttoken被截获也没有关系,而且你要把code去请求用户的信息,这样第一会泄露信息,第二交互麻烦, 前后端分离的第三方登录其实最好是两者在部署到同一个域名之下, 至于部署不同的服务器上很简单, 可以用nginx的配置去完成同域名的配置。至于两者分别部署到什么服务器上交由nginx去完成就行了
    回复 有任何疑惑可以回复我~ 2018-11-27 20:36:24
  • 提问者 烈焰卡卡 回复 bobby #3
    有两个点没太懂
    1、第三方那一句没太明白,回调url应该填什么是回调到第三方。如果不是回调到前端,那后端生成token又怎么返回给前端?
    2、通过nginx的话,重定向可以定向到同一个域名之下的前端url里?
    回复 有任何疑惑可以回复我~ 2018-11-27 20:43:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信