我正在开发一个laravel后端来使用Vue JS,并试图实现用户注册。我已经下载了passport来验证用户,但我很难理解新用户如何注册网站。从我所做的研究来看,似乎你想为注册创建一个可以在不使用laravel passport的情况下访问的路由,然后一旦创建了用户,就授予它一个令牌。一旦用户注册,我会使用个人授权令牌,隐式,或使用护照验证FreshApiToken中间件。我应该把我所有的路由放在web或API路由文件中吗?
6za6bjd01#
你可以在你的API中创建一个路由,任何人都可以注册一个新用户,所以不要使用任何认证中间件,例如:
Route::post('users', 'AuthController@register'); // Signup
字符串在你的控制器中,相关的方法:
/** * API Registerx * * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function register(Request $request) { $rules = [ 'name' => 'unique:users|required', 'email' => 'unique:users|required', 'password' => 'required', ]; $input = $request->only('name', 'email','password'); $validator = Validator::make($input, $rules); if ($validator->fails()) { return response()->json(['success' => false, 'error' => $validator->messages()]); } $name = $request->name; $email = $request->email; $password = $request->password; $user = User::create(['name' => $name, 'email' => $email, 'password' => Hash::make($password)]); }
型从这一点来看,您选择的passport OAuth2授权代码流的类型将影响您在消费者应用程序上的实现。你可以选择经典的OAuth2流程,基本上你有以下步骤:1.将使用者应用程序注册到OAuth2服务器并获取客户端ID和Secret1.使用者应用程序使用客户端ID和Secret向OAuth2服务器请求授权代码1.一旦获得授权代码,使用者应用程序现在就可以向OAuth2服务器请求访问令牌1.消费者应用程序现在可以访问API,在对服务器的每个请求中使用它在头部请求中发送的访问令牌。显然,上面的每一步都是一个HTTP请求,如何执行取决于您在消费者应用程序中使用的技术。例如,在php中,你可以使用Guzzle并发送一个访问令牌请求,如下所示:
$http = new \GuzzleHttp\Client; $response = $http->post('http://yourserver.com/oauth/token', [ 'form_params' => [ 'grant_type' => 'authorization_code', 'client_id' => 'client-id', 'client_secret' => 'client-secret', 'redirect_uri' => 'http://example.com/callback', 'code' => $request->code, ], ]);
型另一方面,你可能想使用一种更简单的方法来检索访问令牌,避免所有的授权代码请求等。使用Laravel passport个人访问令牌。这样,你可以为用户颁发访问令牌,只需做:
$user = App\User::find(1); // Creating a token without scopes... $token = $user->createToken('Token Name')->accessToken;
型我鼓励你看看护照Laravel文档,并检查提供的所有可能性。
1条答案
按热度按时间6za6bjd01#
你可以在你的API中创建一个路由,任何人都可以注册一个新用户,所以不要使用任何认证中间件,例如:
字符串
在你的控制器中,相关的方法:
型
从这一点来看,您选择的passport OAuth2授权代码流的类型将影响您在消费者应用程序上的实现。
你可以选择经典的OAuth2流程,基本上你有以下步骤:
1.将使用者应用程序注册到OAuth2服务器并获取客户端ID和Secret
1.使用者应用程序使用客户端ID和Secret向OAuth2服务器请求授权代码
1.一旦获得授权代码,使用者应用程序现在就可以向OAuth2服务器请求访问令牌
1.消费者应用程序现在可以访问API,在对服务器的每个请求中使用它在头部请求中发送的访问令牌。
显然,上面的每一步都是一个HTTP请求,如何执行取决于您在消费者应用程序中使用的技术。
例如,在php中,你可以使用Guzzle并发送一个访问令牌请求,如下所示:
型
另一方面,你可能想使用一种更简单的方法来检索访问令牌,避免所有的授权代码请求等。使用Laravel passport个人访问令牌。这样,你可以为用户颁发访问令牌,只需做:
型
我鼓励你看看护照Laravel文档,并检查提供的所有可能性。