Presentation is loading. Please wait.

Presentation is loading. Please wait.

70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194.

Similar presentations


Presentation on theme: "70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194."— Presentation transcript:

1 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Microsoft Virtual Academy Django in the real world

2 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Security

3 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Security concepts

4 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Secure Sockets Layer (SSL)

5 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Securing the data on the wire

6 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 How it works

7 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 How it works

8 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Performance concerns

9 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Enabling SSL

10 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Authentication vs Authorization

11 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 What's the difference?

12 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Modes of authentication You authenticate by providing some form of an accepted credential Just like in real life, the form can change

13 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 In real life

14 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 On the web

15 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Django and authentication

16 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Authentication in Django

17 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Authentication is automatically enabled In fact, we already used it when we created the admin site We just need to provide the appropriate views

18 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Creating a login page

19 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 The view code

20 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Create a login page

21 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Accessing the current user

22 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Access the current user by using user

23 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Logging out Just like there's a login method... There's a logout method def logout(request): auth.logout(request); return redirect("/");

24 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Adding logout and administration links

25 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 User registration

26 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 To create a user, we need

27 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 The code

28 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Creating a registration page

29 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Requiring authentication

30 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 If you just need to ensure the user is logged in You could use user.is_authenticated... But a better way to do it is to use the login_required decorator @login_required def submit_session(request): return render(request, 'app/submit_session.html');

31 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 What does login_required do?

32 70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194 233 0 188 242 0 114 198 85 212 85 0 158 73 0 114 51 255 252 158 255 241 0 252 209 22 221 89 0 232 17 35 186 20 26 155 79 150 104 33 122 68 35 89 210 150 80 115 000000 255 51 238 21 112 166 Ensuring the user is logged on


Download ppt "70 104 197 0 24 143 0 32 80 0 216 204 0 178 148 0 130 114 186 216 10 127 186 0 138 0 255 185 0 255 140 0 220 60 0 244 114 208 236 0 140 180 0 158 109 194."

Similar presentations


Ads by Google