在我的应用中,我有用户注册,然后将其重定向到另一个页面,要求他们使用该服务的javascript SDK登录外部服务。然后,我从oAuth进程中将一些信息存储在数据库中。一旦他们使用该服务登录,他们就会被重定向回上一页。现在他们已经完成了,他们可以使用从该外部服务中提取的信息点击链接转到他们的个人资料。
我的问题是,在该链接中,我使用的是命名路由和附加参数(来自该外部服务的用户名)。但是,当页面最初加载时(在oAuth之前),他们的用户名还不知道,所以一旦我点击链接,我就找不到方法404。
我正在考虑重新加载页面以便链接完成,但这看起来有点笨拙。有没有更好的方法呢?链接是否可以从返回的JSON中获取?或者我应该使用AJAX get或laravel事件将用户名推送到客户端?
谢谢!
更新:我想我可以使用javascript来更新该链接的标签上的href属性,但这是最好的方法吗?
HTML:
<a href="{{route('profile', ['username' => Auth::user()->username]) }}" class="btn btn-global">Go to profile</a>
使用Javascript:
$.ajaxSetup({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});
if ($('.twitch-status').css('display') == 'block')
{
Twitch.api({method: 'user'}, function(error, user) {
var userId = $('.oath_id').text();
var username = user.display_name;
$.ajax({
type: "POST",
url: "/oath_authorization/"+username,
data: {username: username},
error: function(data){
console.log(data);
}
});
$('.gotoprofile>a').attr('href', 'http://app.com/profile/'+username);
});
}