2016-04-07 28 views
0

我目前正在開發一個Angular(前端) - Laravel(API)應用程序。我需要知道我是否可以創建混合登錄。與JWT獲取令牌而不嘗試用戶憑據Laravel?

當前我正在使用存儲過程進行登錄。但是,如果登錄成功,我想向客戶端發送JWT令牌。這可能沒有調用JWT嘗試方法?智威湯遜是否有類似JWT :: getToken($ mail);方法?如果我不能這樣做,還有其他的解決方法嗎?

$mail = $request['email']; 
$password = $request['password']; 

$query = new Query("CALL SP_USER_LOG_IN(?,?, @outputMessage)"); 
$query->addParameter(1, $mail); 
$query->addParameter(2, $password); 

$outputMessage = DB::executeQuery($query); 

if($outputMessage === null) 
{ 
    //It means the login was successful 
    $token = JWT::getToken($mail); 

    return ["error" => NULL, "token" => $token]; 
} 
else 
{ 
    return ["error" => $outputMessage]; 
} 

注意

我只是發現了智威湯遜,它看起來像一個很好的解決方案,因爲我與前端的光角應用程序的工作。但是因爲我必須使用存儲過程,所以我不知道如何繼續。

+0

您是否使用包來生成智威湯遜? – jfadich

+0

是的,我是。目前使用JWT for Laravel – ggderas

+0

您能更具體一點嗎?也許包名或鏈接? – jfadich

回答

2

驗證完用戶後,從數據庫中抓取它們,然後創建令牌fromUser($user)

if($outputMessage === null) 
{ 
    //It means the login was successful 
    $user = User::where('email', $mail)->first(); 
    $token = JWT::fromUser($user); 

    return ["error" => NULL, "token" => $token]; 
} 
+0

你救了我的命!謝謝!這就像一個魅力! – ggderas