首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用laravel注册新用户为API

使用laravel注册新用户为API
EN

Stack Overflow用户
提问于 2015-10-21 17:55:27
回答 1查看 2.4K关注 0票数 3

我正在构建一个角度应用程序,它依赖于一个单独的Laravel,并试图注册一个新用户。

Laravel5.1 身份验证提供了许多方便的方法来注册用户,但它们适合于在整个应用程序中使用Laravel,这意味着blade template前端。

我将这个添加到我的routes.php文件中:

代码语言:javascript
运行
复制
$router->controllers([
    'auth' => 'Auth\AuthController',
    'password' => 'Auth\PasswordController'
]);

路由/auth/register是为我提供的,因此我尝试创建一个新用户:

来自DHC的:

我们很抱歉,但是Chrome不允许获得重定向响应体。

来自我的应用程序:

XMLHttpRequest无法加载http://dde.localhost/auth/register。请求被重定向到“http://dde.localhost/home”,对于需要飞行前的跨源请求是不允许的。

我发现原因在于/auth/register调用:postRegister()RegistersUsers.php中的方法:

App\Http\Controllers\Auth\AuthController@postRegister

看上去像是:

代码语言:javascript
运行
复制
public function postRegister(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    Auth::login($this->create($request->all()));

    return redirect($this->redirectPath());
}

这有一个重定向,我猜通常会重定向到刀片欢迎模板什么的。

如果我注释掉重定向,只返回一个200 response

代码语言:javascript
运行
复制
 return Response::make('user created', 200);

我收到一个CORS错误:

http://dde.localhost/auth/register。请求的资源上没有“访问-控制-允许-原产地”标题。

这很奇怪,因为我正在通过BarryCORS中间件路由所有路由:

代码语言:javascript
运行
复制
Route::group(['middleware' => 'cors'], function(\Illuminate\Routing\Router $router) { 

上面说*的起源是允许的。

因此,问题是:我如何为一个只为API使用Laravel的前端应用程序设置注册和auth?

对于我的前端应用程序中的每个调用,似乎都有两个对register的调用:

first :似乎第一个请求具有访问控制头,它是一个选项http请求:

代码语言:javascript
运行
复制
Request URL:http://dde.localhost/auth/register
Request Method:OPTIONS
Status Code:200 OK
//Response Headers: 
access-control-allow-headers:ACCEPT, CONTENT-TYPE
access-control-allow-methods:GET, POST, PUT, DELETE
access-control-allow-origin:http://localhost:1337
Allow:GET,HEAD,POST,PUT,PATCH,DELETE

第二种:在第二种情况下,POST最终被调用,并且带有有效负载,但是访问控制头被剥离。

代码语言:javascript
运行
复制
Request URL:http://dde.localhost/auth/register
Request Method:POST
Status Code:500 Internal Server Error

//Response Headers: there are no access-control-allow methods attached
//Payload
{username: "testname", password: "some random password"}

为什么会这样呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-21 18:41:47

CORS调用之前的选项请求是标准的,它精确地检查服务器的响应头。

如果您要获得HTTP 500,那是因为服务器有问题。如果是只为CORS,您将得到一些40倍的错误。看看你的拉里应用程序日志,服务器端有东西坏了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33266103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档