FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
eve/examples/security/bcrypt.py at develop · python3/eve · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
python3
/
eve
Public
forked from
pyeve/eve
Notifications
You must be signed in to change notification settings
Fork
0
Star
1
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
eve
/
examples
/
security
/
bcrypt.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
40 lines (29 loc) · 1.28 KB
Breadcrumbs
eve
/
examples
/
security
/
bcrypt.py
Copy path
File metadata and controls
40 lines (29 loc) · 1.28 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding: utf-8 -*-
"""
Auth-BCrypt
~~~~~~~~~~~
Securing an Eve-powered API with Basic Authentication (RFC2617).
This script assumes that user accounts are stored in a MongoDB collection
('accounts'), and that passwords are stored as BCrypt hashes. All API
resources/methods will be secured unless they are made explicitly public
(by fiddling with some settings you can open one or more resources and/or
methods to public access -see docs).
You will need to install py-bcrypt: ``pip install py-bcrypt``
Eve @ https://github.com/nicolaiarocci/eve
This snippet by Nicola Iarocci can be used freely for anything you like.
Consider it public domain.
"""
import
bcrypt
from
eve
import
Eve
from
eve
.
auth
import
BasicAuth
from
settings_security
import
SETTINGS
class
BCryptAuth
(
BasicAuth
):
def
check_auth
(
self
,
username
,
password
,
allowed_roles
,
resource
,
method
):
# use Eve's own db driver; no additional connections/resources are used
accounts
=
app
.
data
.
driver
.
db
[
'accounts'
]
account
=
accounts
.
find_one
({
'username'
:
username
})
return
account
and
\
bcrypt
.
hashpw
(
password
,
account
[
'password'
])
==
account
[
'password'
]
if
__name__
==
'__main__'
:
app
=
Eve
(
auth
=
BCryptAuth
,
settings
=
SETTINGS
)
app
.
run
()
Back
|
FazBrowse Home
|
New Git URL