-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
72 lines (59 loc) · 1.96 KB
/
app.py
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from flask import Flask
from flask import current_app
from flask import render_template
import pyrebase
from firebase_token_generator import create_token
import os
import json
from flask_restful import Resource, Api
from flask import request
tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'views')
app = Flask('myapp', template_folder = tmpl_dir)
config = {
"apiKey": "yourApiKey",
"authDomain":"yourprojectId.firebaseapp.com",
"databaseURL":"https://yourprojectId.firebaseio.com",
"storageBucket": "yourstorageBucket",
"serviceAccount":"./yourprojectId.json"
}
firebase = pyrebase.initialize_app(config)
@app.route('/')
def hello():
return render_template('login.html')
@app.route('/login', methods=['POST'])
def sign_in():
email = request.form['email']
password = request.form['password']
auth = firebase.auth()
user = auth.sign_in_with_email_and_password(email, password)
user = auth.refresh(user['refreshToken'])
user_data = auth.get_account_info(user['idToken'])
return json.dumps (user_data)
@app.route('/signup', methods=['POST'])
def sign_up():
db = firebase.database()
auth = firebase.auth()
email = request.form['email']
password = request.form['password']
confirm_password = request.form['confirm_password']
user_details = {
"email": request.form['email'],
"telephone": request.form['telephone'],
"username": request.form['username'],
"street": request.form['street'],
"city": request.form['city'],
"postal_code": request.form['postal_code']
}
if password == confirm_password:
db.child("users").push(user_details)
auth.create_user_with_email_and_password(email, password)
user = auth.sign_in_with_email_and_password(email, password)
auth.send_email_verification(user['idToken'])
return json.dumps(user_details)
@app.route('/users', methods=['GET'])
def get_users():
all_users = db.child("users").get()
all_users_val = all_users.val()
return json.dumps(all_users_val)
if __name__ == '__main__':
app.run()