winter-ice 4年前

修改理由:

更换为小写

相关信息:


此投稿已在 4年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
126126
127127为了保护路由,所有进来的请求都必须进行认证,应该将 `Sanctum` 认证守卫附加到 `routes/api.php` 的API路由里。如果一个请求是来自第三方的请求,这个守卫会确保进来的请求既是一个你的SPA应用的有状态的已认证请求,也是一个包含了有效令牌头的已认证请求:
128128
129    Route::middleware('auth:Sanctum')->get('/user', function (Request $request) {
 129   Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
130130       return $request->user();
131131   });
132132
 
202202
203203要对单页面应用进行身份验证,你的单页面应用的登录页面应首先向`/Sanctum/csrf-cookie`路由发出请求,以初始化应用程序的CSRF保护:
204204
205    axios.get('/Sanctum/csrf-cookie').then(response => {
 205   axios.get('/sanctum/csrf-cookie').then(response => {
206206       // 登录...
207207   });
208208
 
220220
221221为了保护路由,因此必须对所有传入的请求进行身份验证,你应该在`routes/api.php`文件中为你的API路由附加`Sanctum` 授权看守器。如果请求来自你的单页面应用,此看守器会确保传入的请求被验证为有状态的已验证请求,如果请求来自第三方,它将使请求包含有效的API令牌头:
222222
223    Route::middleware('auth:Sanctum')->get('/user', function (Request $request) {
 223   Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
224224       return $request->user();
225225   });
226226
 
232232
233233如果你的单页面应用需要通过[private / presence broadcast channels](/docs/{{version}}/broadcasting#authorizing-channels)进行身份认证,你需要在你的`routes/api.php`文件中调用`Broadcast::routes`方法:
234234
235    Broadcast::routes(['middleware' => ['auth:Sanctum']]);
 235   Broadcast::routes(['middleware' => ['auth:sanctum']]);
236236
237237接下来, 为了使Pusher的授权请求成功, 你需要在初始化[Laravel Echo](/docs/{{version}}/broadcasting#installing-laravel-echo)时提供自定义的Pusher`authorizer`。这可以让你的应用程序将Pusher配置为 [为了跨域请求正确配置的](#cors-and-cookies)`axios`实例:
238238
 
278278   use Illuminate\Support\Facades\Hash;
279279   use Illuminate\Validation\ValidationException;
280280
281    Route::post('/Sanctum/token', function (Request $request) {
 281   Route::post('/sanctum/token', function (Request $request) {
282282       $request->validate([
283283           'email' => 'required|email',
284284           'password' => 'required',
 
305305
306306如前所述,您需要保护路由,因此必须通过在路由上附加`Sanctum`身份验证看守器来对所有传入请求进行身份验证。一般来说,你会将此看守器附加到`routes/api.php`文件中定义的路由上:
307307
308    Route::middleware('auth:Sanctum')->get('/user', function (Request $request) {
 308   Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
309309       return $request->user();
310310   });
311311