我有一个Laravel后端和一个Vue SPA前端。到目前为止,我已经设法使隐式授予令牌起作用。我的问题是关于重定向。
成功通过身份验证后,Laravel重定向到http://localhost:8080/auth/callback #
access_token = AUTH_TOKEN&token_type = TOKEN_TYPE&expires_in = EXPIRES_IN,而不是http://localhost:8080/auth/callback ?
access_token = AUTH_TOKEN&token_type = TOKEN_TYPE&expires_in(EXPIRES和?)。成功认证后,我必须手动输入正确的URL。
如何首先确保将其正确重定向到正确的URL?
答案 0 :(得分:0)
基于this堆栈溢出的答案,我设法找到了解决方法。此功能不是错误,并且重定向到myurl.com吗?不能解决问题。这是我的解决方案。在我的路由器索引文件中,我有两个条目。
第一个是OAuth API将令牌返回到的重定向。 beforeEnter路由器方法获取URL字符串,将#替换为?。然后下一个方法将应用重定向到保存路径。
indexOf方法获取?的索引。
中输入新格式的url,并将其传递给substring方法,该方法将截断http(s)://部分,以便此解决方案既适用于http也适用于https。 截断结果为?access_token
。然后将其附加到下一个方法路径条目,结果可以通过route.query对象从/ save的组件访问prop。
{
path: `/auth/callback`,
beforeEnter: (to, from, next) => {
let url = window.location.href
if(url.includes('#')) {
let newUrl = url.replace('#', '?');
next({path: `/save${newUrl.substring(newUrl.indexOf('?'))}`})
}
next();
},
},
{
path: `/save`,
component: Auth,
props: (route) => ({
access_token: route.query.access_token
})
},