去除多余的空格.

修改理由:
相关信息:
- 类型:文档文章
- 文章: Sanctum 轻量级 API 认证
- 文档: 《Laravel 7 中文文档(7.x)》
此投稿已在 5年前 合并。
内容修改:
Old | New | Differences |
---|---|---|
1 | ||
2 | 1 | # Laravel Airlock |
3 | 2 | |
4 | 3 | - [介绍](#introduction) | … | … |
34 | 33 | |
35 | 34 | Laravel Airlock 的这个特性是通过将用户 API 令牌存储在单个数据库表中,并通过包含了有效 API 令牌的`Authorization`标头对传入请求进行身份验证而实现的。 |
36 | 35 | |
37 | ||
38 | ||
36 | ||
37 | ||
39 | 38 | |
40 | 39 | #### SPA 身份验证 |
41 | 40 | … | … |
71 | 70 | \Illuminate\Routing\Middleware\SubstituteBindings::class, |
72 | 71 | ], |
73 | 72 | |
74 | ||
75 | ||
73 | ||
74 | ||
76 | 75 | <a name="api-token-authentication"></a> |
77 | 76 | ## API 令牌认证 |
78 | 77 | … | … |
104 | 103 | // |
105 | 104 | } |
106 | 105 | |
107 | ||
108 | ||
106 | ||
107 | ||
109 | 108 | |
110 | 109 | <a name="token-abilities"></a> |
111 | 110 | ### 令牌能力 | … | … |
131 | 130 | return $request->user(); |
132 | 131 | }); |
133 | 132 | |
134 | ||
135 | ||
133 | ||
134 | ||
136 | 135 | |
137 | 136 | <a name="revoking-tokens"></a> |
138 | 137 | ### 撤销令牌 | … | … |
154 | 153 | |
155 | 154 | 对于这个特性,Airlock不使用其他任何类型的令牌。相反,Airlock 使用的是Laravel内置的基于cookie的session认证服务。这带来了诸多好处,比如CSRF保护,以及防止通过XSS泄漏身份验证凭据。Airlock 只会在传入的请求来自于你自己的SPA前端时尝试使用cookie进行身份验证。 |
156 | 155 | |
157 | ||
158 | ||
156 | ||
157 | ||
159 | 158 | |
160 | 159 | <a name="spa-configuration"></a> |
161 | 160 | ### 配置 | … | … |
166 | 165 | |
167 | 166 | #### Airlock 中间件 |
168 | 167 | |
169 | 接下来,你应该将Airlock的中间件添加到`app | |
168 | 接下来,你应该将Airlock的中间件添加到`app/Http/Kernel.php`文件中的`api`中间件组中。该中间件负责确保来自单页面应用的传入请求可以使用Laravel的会话cookie进行身份验证,同时仍允许来自第三方或移动应用程序的请求使用API令牌进行身份验证: | |
170 | 169 | |
171 | 170 | use Laravel\Airlock\Http\Middleware\EnsureFrontendRequestsAreStateful; |
172 | 171 | … | … |
176 | 175 | \Illuminate\Routing\Middleware\SubstituteBindings::class, |
177 | 176 | ], |
178 | 177 | |
179 | ||
180 | ||
178 | ||
179 | ||
181 | 180 | |
182 | 181 | <a name="cors-and-cookies"></a> |
183 | 182 | #### CORS & Cookies | … | … |
186 | 185 | |
187 | 186 | 你应该确保应用程序的CORS配置返回的`Access-Control-Allow-Credentials`标头的值为`True`。你可以在`cors`配置文件中配置应用程序的CORS设置。 |
188 | 187 | |
189 | 另外,你应该在全局`axios`实例上启用`withCredentials`选项。通常,这应该在你的`resources | |
188 | 另外,你应该在全局`axios`实例上启用`withCredentials`选项。通常,这应该在你的`resources/js/bootstrap.js`文件中执行: | |
190 | 189 | |
191 | 190 | axios.defaults.withCredentials = true; |
192 | 191 | … | … |
195 | 194 | |
196 | 195 | 'domain' => '.domain.com', |
197 | 196 | |
198 | ||
199 | ||
197 | ||
198 | ||
200 | 199 | |
201 | 200 | <a name="spa-authenticating"></a> |
202 | 201 | ### 验证 | … | … |
213 | 212 | |
214 | 213 | > {提示}你可以自由编写自己的`/login`端点;但是,你应确保使用标准的[Laravel提供的基于会话的身份验证服务](/docs/{{version}}/authentication#authenticating-users)对用户进行身份验证。 |
215 | 214 | |
216 | ||
217 | ||
215 | ||
216 | ||
218 | 217 | |
219 | 218 | <a name="protecting-spa-routes"></a> |
220 | 219 | ### 路由保护 | … | … |
225 | 224 | return $request->user(); |
226 | 225 | }); |
227 | 226 | |
228 | ||
229 | ||
227 | ||
228 | ||
230 | 229 | |
231 | 230 | <a name="authorizing-private-broadcast-channels"></a> |
232 | 231 | ### 授权私有广播频道 | … | … |
261 | 260 | }, |
262 | 261 | }) |
263 | 262 | |
264 | ||
265 | ||
263 | ||
264 | ||
266 | 265 | |
267 | 266 | <a name="mobile-application-authentication"></a> |
268 | 267 | ## 移动应用身份验证 | … | … |
304 | 303 | <a name="protecting-mobile-api-routes"></a> |
305 | 304 | ### 路由保护 |
306 | 305 | |
307 | 如前所述,您需要保护路由,因此必须通过在路由上附加`airlock`身份验证看守器来对所有传入请求进行身份验证。一般来说,你会将此看守器附加到`routes | |
306 | 如前所述,您需要保护路由,因此必须通过在路由上附加`airlock`身份验证看守器来对所有传入请求进行身份验证。一般来说,你会将此看守器附加到`routes/api.php`文件中定义的路由上: | |
308 | 307 | |
309 | 308 | Route::middleware('auth:airlock')->get('/user', function (Request $request) { |
310 | 309 | return $request->user(); |
311 | 310 | }); |
312 | 311 | |
313 | ||
314 | ||
312 | ||
313 | ||
315 | 314 | |
316 | 315 | <a name="revoking-mobile-api-tokens"></a> |
317 | 316 | ### 撤销令牌 | … | … |
349 | 348 | Airlock::actingAs( |
350 | 349 | factory(User::class)->create(), |
351 | 350 | ['*'] |
352 | ); | |
351 | ); | |
353 | 352 |