Ich mache API in Laravel. Ich benutze die Datenbank, die bereits erstellt wurde und live ist. Dieses System verwendet md5 mit Salzwerten. Ich möchte die Authentifizierung für dieses System durchführen. Wie soll ich tun? Mein Quellcode:Authentifizierung in Laravel
public function authenticate(Request $request)
{
$email = $request->input('email');
$password = md5('testpassword' . 'saltvaluehere');
try {
//
// attempt to verify the credentials and create a token for the user
if (!$token = JWTAuth::attempt([
'email' => $email,
'pass' => $password
])
) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
} catch (JWTException $e) {
// something went wrong whilst attempting to encode the token
return response()->json(['error' => 'could_not_create_token'], 500);
}
// all good so return the token
return response()->json(compact('token'));
}
Im Kern php diese Authentifizierung durchgeführt wird:
$getpass = $mydb->CleanString($_POST['password']);
$getusername = $mydb->CleanString($_POST['username']);
$dbpass = $mydb->md5_decrypt($mydb->getValue("pass","tbl_admin","username = '".$getusername."'"), SECRETPASSWORD);
if($dbpass == $getpass){
return 'success full login';
}
oben Code doesnot gleichen Wert von Hash geben, so dass ich mich nicht authentifizieren, in System zu können.
Edited:
ich das Passwort erhalten haben, die mit Datenbank abgeglichen, aber Token erzeugt nicht bieng.
hier ist mein Code:
public function authenticate(Request $request)
{
$email = $request->input('email');
$password = $request->input('password');
$password = md5($password);
try {
//
// attempt to verify the credentials and create a token for the user
if (!$token = JWTAuth::attempt([
'email' => $email,
'password' => $password
])
){
//return response()->json(compact('token'));
return response()->json(['error' => 'invalid_credentials','_data'=>[$password,$email]], 401);
}
} catch (JWTException $e) {
// something went wrong whilst attempting to encode the token
return response()->json(['error' => 'could_not_create_token'], 500);
}
// all good so return the token
return response()->json(compact('token'));
}
kann mir jemand sagen, der Grund, warum Token wird nicht erzeugt wird, und warum ist es ungültig credintials sagen. Wie es das Passwort und die E-Mail der Datenbank der verschlüsselten Form zeigt.