我正在尝试建立一个Linkedin& Google使用Laravel社交网站套件登录我的Laravel 5 / Angular 2网站。
社交网站提供程序和别名已正确插入config/app.php
文件
以下是我在config/services.php
文件中插入的代码
'linkedin' => [
'client_id' => '[hidden-linkedin-client-id]',
'client_secret' => '[hidden-linkedin-client-secret]',
'redirect' => 'http://localhost:8888/profile',
],
'google' => [
'client_id' => '[hidden-google-client-id]',
'client_secret' => '[hidden-google-client-secret]',
'redirect' => 'http://localhost:8888/profile',
],
以下是我创建的路线......
Route::get('/auth/{provider}', 'Auth\AuthController@redirectToProvider');
Route::get('/auth/{provider}/callback', 'Auth\AuthController@handleProviderCallback');
...以及Http/Controllers/Auth/AuthController.php
public function redirectToProvider($provider)
{
Log::info('redirecting');
return Socialite::driver($provider)->redirect();
}
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->user();
return $user->token;
}
然后,当我导航到http://localhost:8888/auth/github或http://localhost:8888/auth/linkedin时,它会将我重定向到http://localhost:8888而没有任何日志。我哪里出错了?
答案 0 :(得分:0)
更新社交重定向的配置,检查以下内容: -
public function redirectToProvider(){
try{
Log::info('redirecting');
return Socialite::driver(\Request::segment(2))->redirect();
}catch(\Exception $e){
Log::info('Exception in redirect');
}
}
和重定向功能应该是这样的: -
$(function () {
$('body').prepend(RangeBar({
min: moment().startOf('day').format('LLLL'),
max: moment().startOf('day').add(1, 'day').format('LLLL'),
valueFormat: function(ts) {
return moment(ts).format('HH:mm');
},
valueParse: function(date) {
return moment(date).valueOf();
},
values: [
[
moment().startOf('day').add(5.0, 'hours').format('LLLL'),
moment().startOf('day').add(6.0, 'hours').format('LLLL')
],
[
moment().startOf('day').add(12.0, 'hours').format('LLLL'),
moment().startOf('day').add(13.0, 'hours').format('LLLL')
],
[
moment().endOf('day').subtract(5.0, 'hours').format('LLLL'),
moment().endOf('day').subtract(4.0, 'hours').format('LLLL')
],
],
label: function(a){
var jsonText = JSON.stringify(a);
return jsonText;
},
snap: 1000 * 60 * 30,
minSize: 1000 * 60 * 60,
bgLabels: 24,
allowDelete: true,
indicator: null
}).on('changing', function(ev, ranges, changed) {
$('pre.changing').html(JSON.stringify(ranges,null,2));
}).$el);
$(document).ready(function() {
$('.elessar-range').addClass('fixed');
// it helps to set read only values - yellow blocks.
});
$("#submit").click(function () {
...
});
});
答案 1 :(得分:0)
非常感谢您的帮助,但由于未调用redirectToProvider()
函数,因此您的答案均无效。
所以我保留了我的初始代码,最后通过在中间件Middleware/RedirectIfAuthenticated.php
中注释这些行来使其工作:
public function handle($request, Closure $next, $guard = null)
{
/*
if (Auth::guard($guard)->check()) {
return redirect('/');
}
*/
return $next($request);
}
这显然是一种解决方法,但这是我发现的最佳解决方案。