Когда я добавляю нового пользователя и пароль в консоли GCP, обновляю и жду, а затем повторно внедряю и запускаю свое веб-приложение. Я не могу войти в систему с этим пользователем. Я все еще могу войти с моим первоначальным тестовым пользователем (первым и единственным пользователем до сих пор, кроме администратора 'postgres' user)
Я попытался удалить и повторно добавить того же пользователя. Я попытался добавить еще одного пользователя и развернуть его - снова пытаетесь войти в систему. Я позаботился о том, чтобы обновился, и дождался, пока изменения вступят в силу, перед повторным развертыванием веб-приложения. Я вошел в систему со своим исходным пользователем, выйдите из системы и попробуйте войти в систему с новым пользователем, также первоначально с новым пользователем. Я искал в Интернете ответы, но на удивление безрезультатно.
Основной, внешний файл app.py, в котором есть управление пользователями / код авторизации с использованием функций Flask и flask_login:
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import sys
#sys.path.append('/Users/crowledj/Mindfule/dash-flask-login/views/')
#sys.path.append('/Users/crowledj/Mindfule/dash-flask-login/flask_login/')
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__ , external_stylesheets=external_stylesheets)
#server=app.server
app.css.append_css({'external_url': 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css'})
from server import app, server
from flask_login import logout_user, current_user
import success, login, login_fd, logout
#import sqlalchemy
header = html.Div(
className='header',
children=html.Div(
className='container-width',
style={'height': '100%'},
children=[
html.Img(
src='mindfule_company_logo.jpg',
className='logo'
),
html.Div(className='links', children=[
html.Div(id='user-name', className='link'),
html.Div(id='logout', className='link')
])
]
)
)
app.layout = html.Div(
[
header,
html.Div([
html.Div(
html.Div(id='page-content', className='content'),
className='content-container'
),
], className='container-width'),
dcc.Location(id='url', refresh=False),
]
)
@app.callback(Output('page-content', 'children'),
[Input('url', 'pathname')])
def display_page(pathname):
if pathname == '/':
return login.layout
elif pathname == '/login':
return login.layout
elif pathname == '/success':
if current_user.is_authenticated:
print('returning success page from main app ... \n')
return success.layout
else:
return login_fd.layout
elif pathname == '/logout':
if current_user.is_authenticated:
logout_user()
return logout.layout
else:
return logout.layout
else:
return '404'
@app.callback(
Output('user-name', 'children'),
[Input('page-content', 'children')])
def cur_user(input1):
if current_user.is_authenticated:
return html.Div('Current user: ' + current_user.username)
# 'User authenticated' return username in get_id()
else:
return ''
@app.callback(
Output('logout', 'children'),
[Input('page-content', 'children')])
def user_logout(input1):
if current_user.is_authenticated:
return html.A('Logout', href='/logout')
else:
return ''
if __name__ == '__main__':
app.run_server(debug=True,port=8080,host= "foodmoodai.appspot.com") #"0.0.0.0") #
единственный код, связанный с Postgres и SQL, @ начало файла моей страницы 'success':
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
import plotly.graph_objs as go
from textwrap import dedent as d
from flask import Flask
import pandas as pd
import numpy as np
from NutrientParser import parseNutrientStr_frmUser,parseResearch,parseFoodResearch,find_substring
from userMindfuleClasses import *
import PIL
import urllib3
from PIL import Image
import json,os
import arrow
from server import app
from flask_login import current_user
import psycopg2
from datetime import datetime
timeStamp=datetime.now()
#db_user='test'
#db_pass='test1'
#db_name='foodnmood-db'
#INSTANCE_CONNECTION_NAME='foodmoodai:europe-west2:foodnmood-db'
from sqlalchemy import Table, Column, Integer, String, MetaData,create_engine
meta = MetaData()
#engine = create_engine('postgresql+psycopg2://postgres:Pollgorm1@/cloudsql/foodmoodai:europe-west2:foodnmood-db')
engine = create_engine('postgresql+psycopg2://postgres:Pollgorm1@/?host=/cloudsql/foodmoodai:europe-west2:foodnmood-db')
mealnMoodwithTimesnFoods = Table(
'mealnMoodwithTimesnFoods', meta,
Column('time', String, primary_key = True),
Column('id', String),
Column('food_1', String),
Column('food_2', String),
Column('food_3', String),
Column('mood', String),
)
meta.create_all(engine)
Я ожидаю, что смогу по крайней мере добавить нового пользователя (который автоматически имеет разрешения на вход в систему) и войти в систему после страницы входа в систему при повторном развертывании приложения после внесения этого изменения в консоли GCP.