You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/pt/docs/tutorial/security/simple-oauth2.md
+19-21Lines changed: 19 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ Mas não se preocupe, você pode mostrá-lo como quiser aos usuários finais no
14
14
15
15
E seus modelos de banco de dados podem usar qualquer outro nome que você desejar.
16
16
17
-
Mas para a*path operation* (operação decaminho) de login, precisamos usar esses nomes para serem compatíveis com a especificação (e poder, por exemplo, usar o sistema integrado de documentação da API).
17
+
Mas para a*operação derota* de login, precisamos usar esses nomes para serem compatíveis com a especificação (e poder, por exemplo, usar o sistema integrado de documentação da API).
18
18
19
19
A especificação também afirma que o`username` e a`password` devem ser enviados como dados de formulário (portanto, não há JSON aqui).
20
20
@@ -26,13 +26,13 @@ O nome do campo do formulário é `scope` (no singular), mas na verdade é uma l
26
26
27
27
Cada “scope” é apenas uma string (sem espaços).
28
28
29
-
Normalmente são usadospara declarar permissões de segurança específicas, por exemplo:
29
+
Normalmente são usados para declarar permissões de segurança específicas, por exemplo:
30
30
31
31
*`users:read` ou`users:write` são exemplos comuns.
32
32
*`instagram_basic` é usado pelo Facebook e Instagram.
33
33
*`https://www.googleapis.com/auth/drive` é usado pelo Google.
34
34
35
-
/// info |"Informação"
35
+
/// info | Informação
36
36
37
37
No OAuth2, um "scope" é apenas uma string que declara uma permissão específica necessária.
38
38
@@ -50,7 +50,7 @@ Agora vamos usar os utilitários fornecidos pelo **FastAPI** para lidar com isso
50
50
51
51
###`OAuth2PasswordRequestForm`
52
52
53
-
Primeiro, importe`OAuth2PasswordRequestForm` e use-o como uma dependência com`Depends` na*path operation* (operação decaminho) para`/token`:
53
+
Primeiro, importe`OAuth2PasswordRequestForm` e use-o como uma dependência com`Depends` na*operação derota* para`/token`:
54
54
55
55
//// tab | Python 3.10+
56
56
@@ -78,7 +78,7 @@ Primeiro, importe `OAuth2PasswordRequestForm` e use-o como uma dependência com
78
78
79
79
//// tab | Python 3.10+ non-Annotated
80
80
81
-
/// tip |"Dica"
81
+
/// tip | Dica
82
82
83
83
Prefira usar a versão`Annotated`, se possível.
84
84
@@ -92,7 +92,7 @@ Prefira usar a versão `Annotated`, se possível.
92
92
93
93
//// tab | Python 3.8+ non-Annotated
94
94
95
-
/// tip |"Dica"
95
+
/// tip | Dica
96
96
97
97
Prefira usar a versão`Annotated`, se possível.
98
98
@@ -111,7 +111,7 @@ Prefira usar a versão `Annotated`, se possível.
111
111
* Um campo`scope` opcional como uma string grande, composta de strings separadas por espaços.
112
112
* Um`grant_type` (tipo de concessão) opcional.
113
113
114
-
/// tip |"Dica"
114
+
/// tip | Dica
115
115
116
116
A especificação OAuth2 na verdade*requer* um campo`grant_type` com um valor fixo de`password`, mas`OAuth2PasswordRequestForm` não o impõe.
117
117
@@ -122,7 +122,7 @@ Se você precisar aplicá-lo, use `OAuth2PasswordRequestFormStrict` em vez de `O
122
122
* Um`client_id` opcional (não precisamos dele em nosso exemplo).
123
123
* Um`client_secret` opcional (não precisamos dele em nosso exemplo).
124
124
125
-
/// info |"Informação"
125
+
/// info | Informação
126
126
127
127
O`OAuth2PasswordRequestForm` não é uma classe especial para**FastAPI** como é`OAuth2PasswordBearer`.
128
128
@@ -136,7 +136,7 @@ Mas como é um caso de uso comum, ele é fornecido diretamente pelo **FastAPI**,
136
136
137
137
###Use os dados do formulário
138
138
139
-
/// tip |"Dica"
139
+
/// tip | Dica
140
140
141
141
A instância da classe de dependência`OAuth2PasswordRequestForm` não terá um atributo`scope` com a string longa separada por espaços, em vez disso, terá um atributo`scopes` com a lista real de strings para cada escopo enviado.
142
142
@@ -176,7 +176,7 @@ Para o erro, usamos a exceção `HTTPException`:
176
176
177
177
//// tab | Python 3.10+ non-Annotated
178
178
179
-
/// tip |"Dica"
179
+
/// tip | Dica
180
180
181
181
Prefira usar a versão`Annotated`, se possível.
182
182
@@ -190,7 +190,7 @@ Prefira usar a versão `Annotated`, se possível.
190
190
191
191
//// tab | Python 3.8+ non-Annotated
192
192
193
-
/// tip |"Dica"
193
+
/// tip | Dica
194
194
195
195
Prefira usar a versão`Annotated`, se possível.
196
196
@@ -266,7 +266,7 @@ Prefira usar a versão `Annotated`, se possível.
266
266
267
267
//// tab | Python 3.8+ non-Annotated
268
268
269
-
/// tip |"Dica"
269
+
/// tip | Dica
270
270
271
271
Prefira usar a versão`Annotated`, se possível.
272
272
@@ -280,8 +280,6 @@ Prefira usar a versão `Annotated`, se possível.
280
280
281
281
####Sobre`**user_dict`
282
282
283
-
`UserInDB(**user_dict)` means:
284
-
285
283
`UserInDB(**user_dict)` significa:
286
284
287
285
*Passe as keys (chaves) e values (valores) de`user_dict` diretamente como argumentos de valor-chave, equivalente a:*
@@ -312,7 +310,7 @@ E deve ter um `access_token`, com uma string contendo nosso token de acesso.
312
310
313
311
Para este exemplo simples, seremos completamente inseguros e retornaremos o mesmo`username` do token.
314
312
315
-
/// tip |"Dica"
313
+
/// tip | Dica
316
314
317
315
No próximo capítulo, você verá uma implementação realmente segura, com hash de senha e tokens <abbrtitle="JSON Web Tokens">JWT</abbr>.
318
316
@@ -346,7 +344,7 @@ Mas, por enquanto, vamos nos concentrar nos detalhes específicos de que precisa
346
344
347
345
//// tab | Python 3.10+ non-Annotated
348
346
349
-
/// tip |"Dica"
347
+
/// tip | Dica
350
348
351
349
Prefira usar a versão`Annotated`, se possível.
352
350
@@ -360,7 +358,7 @@ Prefira usar a versão `Annotated`, se possível.
360
358
361
359
//// tab | Python 3.8+ non-Annotated
362
360
363
-
/// tip |"Dica"
361
+
/// tip | Dica
364
362
365
363
Prefira usar a versão`Annotated`, se possível.
366
364
@@ -372,7 +370,7 @@ Prefira usar a versão `Annotated`, se possível.
372
370
373
371
////
374
372
375
-
/// tip |"Dica"
373
+
/// tip | Dica
376
374
377
375
Pela especificação, você deve retornar um JSON com um`access_token` e um`token_type`, o mesmo que neste exemplo.
378
376
@@ -422,7 +420,7 @@ Portanto, em nosso endpoint, só obteremos um usuário se o usuário existir, ti
422
420
423
421
//// tab | Python 3.10+ non-Annotated
424
422
425
-
/// tip |"Dica"
423
+
/// tip | Dica
426
424
427
425
Prefira usar a versão`Annotated`, se possível.
428
426
@@ -436,7 +434,7 @@ Prefira usar a versão `Annotated`, se possível.
436
434
437
435
//// tab | Python 3.8+ non-Annotated
438
436
439
-
/// tip |"Dica"
437
+
/// tip | Dica
440
438
441
439
Prefira usar a versão`Annotated`, se possível.
442
440
@@ -448,7 +446,7 @@ Prefira usar a versão `Annotated`, se possível.
448
446
449
447
////
450
448
451
-
/// info |"Informação"
449
+
/// info | Informação
452
450
453
451
O cabeçalho adicional`WWW-Authenticate` com valor`Bearer` que estamos retornando aqui também faz parte da especificação.