当通过发送邮差端口DB数据得到坠毁,该端口不laravel进一步工作

问题描述 投票:0回答:2

我想laravel护照进行身份验证。而看完后的文档,我的编码下面的代码行,我试图通过像邮递员通过在图像数据:

<?php

namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\User;
use GuzzleHttp\Client;
class AuthController extends Controller
{
public function register(Request $request){
    $validationData = $request->validate([

        'email' => 'required',
        'name' => 'required',
        'password' => 'required'
    ]);

    $user = User::firstOrNew(['email' => '$request->email']);
    $user->name = $request->name;
    $user->email = $request->email;
    $user->password = md5($request->password);
    $user->save();



  $http = new Client;
  $response = $http->post(url('oauth/token'), [

    'form_params' => [
        'grant_type' => 'password',
        'client_id' => '2',
        'client_secret' => 'WXXWDxYHfIPu5fbkSSTCnw56Gk0VJ271KDEd9NKr',
        'email' => $request->email,
        'password' => $request->password,
        'scope' =>'',
    ],
  ]);

return response (['data' => json_decode((string) $response->getBody(),  true)]);



}
public function login(){

}
}

当我检查数据库中的数据已发布到表中,但该请求没有停止,直到我采空了。然后,当我尝试重新发送请求时,它抛出错误说电子邮件几乎存在。我知道它的好。但端口8016这么想的反应了。谁能告诉我什么是错在这里,谢谢。

php laravel web backend
2个回答
1
投票

请允许我开始:

关于邮递员..你正在使用HTTP POST而不是使用身体,而不是你发送的网址参数。为什么用身体把他们的参数呢? (在狂饮的代码,你要发送的体中的内容)。

剥去验证方法中,如果你正在寻找验证表单,您可以组织代码更好,如果你创建一组验证的其他地方。

https://laravel.com/docs/5.7/validation#creating-form-requests

请停止使用MD5,你有内Laravel密钥,因此哈希它。

\Hash::make($request->password);    instead of    $user->password = md5($request->password);

如果您的请求到您的项目将会使外部URL的请求时,需要考虑到如果由于某种原因(500,404,403)请求失败会发生什么。如果你要申请自己的路线,你为什么使用狂饮?您可以在内部呼叫路由(甚至尽管世界上没有必要,如果你需要从自己的代码的功能,你可以称呼它)

“当我检查了数据库中的数据已经被公布到表中,但该请求发送不会停止utill我停下来。”

最有可能的,因为你正在做的HTTP请求,正如我上面所说,只是叫自己的代码函数内部,并采取了狂饮。


1
投票

你已经检查了数据库呢?可能有一个创纪录的$请求 - >电子邮件。 Сannot写变量在单引号写了这么

$user = User::firstOrNew(['email' => $request->email]);

要么

 $user = User::firstOrNew(['email' => "$request->email"]);
© www.soinside.com 2019 - 2024. All rights reserved.