У меня проблема с получением логина. У меня работает скрипт LDAP python, но у меня возникают проблемы с правильной маршрутизацией / перенаправлением пользователя в систему и из нее. По сути, у меня есть 2 angularjs 1.3 приложения, которые используют flask для использования некоторых серверных API. Для входа в систему у меня есть python скрипт, который принимает имя пользователя и pwd и возвращает Pass или Fail. Структура файла выглядит следующим образом:
ipLookup
-app.js
-index.htm
-views
statsDashboard
-app.js
-index.htm
-views
index.htm
login.htm
flask_scripts
flask_scripts.py
ipLookup >> app. js
var app = angular.module('NetApp', ['ngRoute']);
app.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : './views/ipSearch.htm',
controller : 'configController'
})
.when('/configResults', {
templateUrl : './views/ipResults.htm',
controller : 'configResultsController'
})
.when('/login', {
templateUrl : './././login.htm',
controller : 'loginController'
})
});
.....
statsDashboard >> app. js
var app = angular.module('NetApp', ['ngRoute']);
app.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : './views/statSearch.htm',
controller : "searchController"
})
.when('/statResults', {
templateUrl : './views/statResults.htm',
controller : "statResultsController"
})
.when('/login', {
templateUrl : './././login.htm',
controller : 'loginController'
})
});
flask_scripts >> flask_scripts.py
from flask import Flask, request, url_for, session
app = Flask(__name__)
@app.route('/ipsearch', methods=['POST'])
def ip_check():
if not session.get('logged_in'):
return redirect(url_for('login'))
from python.extl import search_ip_addr
ip_result = request.form.get('ip_result','')
return search_ip_addr.ip_db_search(ip_result)
@app.route('/statsearch', methods=['POST'])
def stat_check():
if not session.get('logged_in'):
return redirect(url_for('login'))
from python.extl import stat_search
stat_result = request.form.get('stat_result','')
return stat_search.get_int_stat(stat_result)
@app.route('/login', methods=['POST'])
def login():
from python.extl import active_directory
username = request.form.get('username','')
password = request.form.get('password','')
# Return 'Pass' if login is successful, else return 'Fail'
auth = active_directory.ldap_auth(username, password)
if 'Pass' in auth:
print('You Shall Pass!')
session['logged_in'] = True
# Return user to original URL if login successfully
return redirect(original_url)
elif auth is False:
print('You Shall Not Pass!')
session['logged_in'] = False
else:
print('Pass Error!')
session['logged_in'] = False
return auth
# Capture url where user first landed
@app.before_request
def before_request():
# Capture the URL of the page where user first landed
original_url = request.url
if __name__ == '__main__':
app.run(debug=True)
Я унаследовал это приложение, и на данный момент все, что я могу сделать, это включить аутентификацию LDAP и могу Не тратьте время на переход к новому Angular или массовую его реструктуризацию. Пожалуйста, помогите мне с включением входа в оба приложения. Когда пользователь не вошел в систему, он должен быть перенаправлен в login.htm, и после этого он отправляет его обратно в приложение, в котором он находился. Вход в систему 2 раза для каждого приложения также является опцией.
Спасибо