Laravel 4用户登录验证

时间:2014-03-14 04:44:27

标签: oracle authentication laravel laravel-4 oracle-sqldeveloper

我正在使用laravel和oracle数据库。现在,我正在制作登录部分。当我输入正确的用户名和密码时,结果还可以。但是我输入了错误的用户名或密码,发生以下异常:

Illuminate \ Database \ QueryException

oci_error() expects parameter 1 to be resource, object given (SQL: select * from test_laravel_auth where username = tugsuu and password = testsss)

我的控制器代码:

$user = DB::table('test_laravel_auth')->where('username', '=', $input['login_username'])
                                                    ->where('password', '=', $input['login_password'])
                                                    ->get();
            return count($user);
            if($user != null){
                return "SUCCESS :D";
            }
            return "failed";

4 个答案:

答案 0 :(得分:1)

我假设您使用的是[jfelder / Laravel-OracleDB]软件包。这是网站上声明的已知问题,已添加fixed。尝试运行 composer update 来更新您的软件包。

另一个选择是使用yajra/laravel-oci8包连接到Oracle。

答案 1 :(得分:0)

试试这个

$user = DB::table('test_laravel_auth')->where('username', '=', Input::get('username'))
          ->where('password', '=', Input::get('password'))
          ->get();

    if(Auth::attempt($user)) 
    {
    //here success    
    }
    else
    {
     return Redirect::to('login')->with('login_errors','Invalid Login Credentials.');
    }

答案 2 :(得分:0)

我建议你先使用而不是get(),这将检索第一条记录(只应找到一条记录)。您也可以尝试使用firstOrFail()并在“失败”时创建错误处理程序。如果失败=登录不正确。

$user = DB::table('test_laravel_auth')->where('username', '=', Input::get('login_username'))->where('password', '=', Input::get('login_password'))->first();

if (!is_null($user))
{
   Auth::login($user);
}
else
{
    //failed
}

答案 3 :(得分:0)

我也在Laravel中使用Oracle数据库,这个解决方案对我有用:

if ( Auth::attempt( array( 'user_name' => Input::get( 'username' ), 'password' => Input::get( 'password' ) ) ) )
{
    return Redirect::intended( 'dashboard' );
}
else
{
    return Redirect::to( 'login' )->withInput( Input::except( 'password' ) );
}

我的代码在Laravel文档中是相同的。它并不要求您使用查询进行身份验证,您需要使用的只是Laravel附带的身份验证类。

您使用的是什么驱动程序/包?我使用 yajra / laravel-oci8 包使Oracle与Laravel一起工作。 您可以在其页面上阅读有关laravel-oci8软件包文档的更多信息:https://github.com/yajra/laravel-oci8

相关问题