javascript - VueJS:页面重定向后如何检索url参数?
问题描述
我在我的 VueJS 应用程序中使用第三方服务通过 Facebook (AWS Cognito) 执行登录。
我单击“使用 Facebook 登录”按钮,该按钮将调用第三方 url,其中将出现“使用 Facebook 注册”提示。
例如。
window.location.href = https://my-cognito-app-domain/oauth2/authorize?response_type=token&client_id=my_client_id&redirect_uri=my_redirect_url&identity_provider=Facebook
用户将输入他/她的 Facebook 凭据进行身份验证。
成功验证后,用户将重定向回 VueJS 应用程序,并将access_token作为 url 参数附加
例如。https://my-app-example.com/ #access_token=eyJraWQiOiIyRHViM0VrY2 ...
我试图在我的 VueJS 应用程序的上下文中获取 access_token 对其执行一些逻辑。(解码 jwt 等)
安装和创建应用程序时,我曾尝试在App.vue中使用 window.location.search ,但由于页面被重定向,我无法得到这个。
下面是代码示例:
<template>
<div id="app">
</div>
</template>
<script type="text/javascript">
// @ is an alias to /src
import Navigation from '@/components/Navigation.vue'
import Footer from '@/components/Footer.vue'
export default {
name: 'home',
components: {
Navigation,
Footer
},
created(){
console.log("created")
var params = window.location.hash
console.log(params)
},
mounted(){
console.log("mounted")
var params = window.location.hash
console.log(params)
}
}
我希望在页面重定向回 VueJS 应用程序后立即获得 access_token。我是否正确地说 App.vue 在页面重定向后总是重新加载?如果没有,是否有办法跟踪页面何时被重定向?
解决方案
window.location.search
contains?
后跟 URL 的参数。
由于重定向链接不包含?
but #
,您应该改用
window.location.hash
它,它包含#
后跟 URL 的其余部分。
参考:https ://developer.mozilla.org/en-US/docs/Web/API/Location#Properties
推荐阅读
- sql - 在 SQL Server 2012 上按空格分割文本
- java - 如何调用以参数为List的java方法
> 来自斯卡拉 - python - 使用 Python 的分配算法
- mysql - MySQL:使用不同表中的值从组中选择最大值?
- z3 - 抽象 Z3/SMT-LIB 中的断言组
- django - 从另一台计算机查看我在 IIS 中托管的 Django 站点
- asp.net - 如何去掉边框属性,在浏览器中查看元素时不出现“边框”
如何去掉边框属性,在浏览器中查看元素时不出现“边框”
https://imagizer.imageshack.com/img921/2092/InUQCG.jpg
视觉工作室 2017 MS SQL
- r - 几何包中的 polyarea() 函数是否足够精确以计算复杂多边形中的面积?
- generics - Kotlin 中具有泛型类型的 Lambda val
- python-3.x - 发送电子邮件脚本适用于 Win,但不适用于 Android