Или всё-таки посоветуете использовать SQLAlchemy?
Так же слышал про Flask-security, но использовать его крайне не хочется.
SELECT * FROM `user`
забрали всех юзеров, а потом сравниваете есть такой юзер или нет. А есть будет 100500 миллиардов юзеров? То что что делать? Каждый раз крутить такой ужас.cur.execute("""select id from user where login=%s and pass=%s""", (login, passw))
If cur.fetchone().get('id'):
return redirect(url_for('admin'))
from flask import session
@app.route('/')
def index():
if not session.get('logged_in'):
return redirect('/submit')
else:
return render_template('index.html')
@app.route('/submit', methods = ['POST'])
def post():
if request.form.get('login') == 'admin':
session['logged_in'] = True
return jsonify({'type':'success','msg':'success'})
return jsonify({'type':'error','msg':'error'})
Так вот, будут ли ПРОСТЫЕ примеры реализации токен авторизации между этими двумя фреймворками?
import React from 'react';
import Cookie from 'js-cookie';
class SimpleExample extends React.Component {
state = {
isProcessing: false,
token: Cookie.get('token'),
data: null,
};
handleSignIn = () => {
this.setState({ isProcessing: true });
fetch('/singin', {
method: 'POST',
data: JSON.stringify({ login: 'admin', pass: 'zx23ww' }),
})
.then(res => res.json())
.then(data => {
this.setState({
isProcessing: false,
token: data.token,
});
Cookie.set('token', token);
});
};
handleLogout = () => {
Cookie.erase('token');
this.setState({ token: null });
};
handleGetProtectedData = () => {
fetch('/protected'{
method: 'GET',
headers: {
Authorization: `Bearer ${this.state.token}`,
},
})
.then(res => res.json())
.then(data => {
this.setState({ data });
});
};
render() {
const { isProcessing, token } = this.state;
if (isProcessing) return <div>...initialization</div>;
const isSignedIn = !!token;
return isSignedIn ? (
<div>
<h1>You're signed in</h1>
<button onClick={this.handleLogout}>Logout</button>
<button onClick={this.handleGetProtectedData}>Get protected data</button>
</div>
) : (
<div>
<h1>You're not signed in</h1>
<button onClick={this.handleSignIn}>Sign in</button>
</div>
);
}
}