允许用户在 laravel 5.2 中进行登录后调用

Posted

技术标签:

【中文标题】允许用户在 laravel 5.2 中进行登录后调用【英文标题】:Allow user to make post login call in laravel 5.2 【发布时间】:2017-02-19 21:24:54 【问题描述】:

我有 laravel 5.2 应用程序,如果用户已经登录,则用户被限制访问 /login。现在我们已经实现了“从其他应用程序(不是 laravel)登录我们的应用程序的功能”。现在的问题是,当请求应用程序进行 ajax 调用 以获取登录时,如果用户在请求之前未登录,laravel 5.2 会返回完美响应。但是登录后,如果再次请求应用程序请求登录,laravel 应用程序返回主页视图作为响应。我想在处理登录请求之前对其进行自定义并让用户注销。我在互联网和调试上花费了太多时间。但是到处都有人要求限制登录页面。但我的要求是允许使用 post 方法请求 /login 并自定义响应。如果有人知道答案,将不胜感激。

这是请求应用的代码

$.ajax(
    type: 'POST',
    url: 'http://192.168.1.78/my-app/login',
    data: 
        st_email: 'xyz@xyz.com',
        st_password: 'myPass'
    
).success(function (response) 
    // getting view in response if user is already restrict
).error(function () 
    console.log('error');
);

【问题讨论】:

你想使用 laravel 应用作为其他应用的认证服务吗? @D.Hot,是的,我想将 laravel 应用程序用作身份验证服务。现在请不要告诉使用 JWT。我不能这样做。 【参考方案1】:

在你的 app/Http/Middleware/RedirectIfAuthenticated 你有这个功能:

    public function handle($request, Closure $next, $guard = null)
    
        if (Auth::guard($guard)->check()) 
            return redirect('/');
        

        return $next($request);
    

如果您在您的应用停止从 /login 重定向您的情况下删除它。你也可以像这样编辑这个函数:

    public function handle($request, Closure $next, $guard = null)
    
        if (Auth::guard($guard)->check() and ! $request->isMethod('post')) 
            return redirect('/');
        

        return $next($request);
    

此功能仅在您请求不是 post 方法时重定向您

【讨论】:

以上是关于允许用户在 laravel 5.2 中进行登录后调用的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2:用户登录后做了什么?

Laravel 5.2:在用户登录/注销和注册后显示会话闪烁消息

在laravel 5.2中,Laravel手动登录始终不匹配

如何将客人重定向到登录页面,在laravel 5.2登录后重定向回来[关闭]

如何在 Laravel 5.2 中手动发送密码重置请求?

如何在laravel 5.2登录时检查电子邮件(确认/否)?