내 응용 프로그램의 일부 경로에 플라스크 로그인 @login_required
데코레이터를 사용하고 있습니다. 로그인하지 않은 상태에서 해당 경로를 탐색 할 때 로그인 페이지로 리디렉션됩니다. 여태까지는 그런대로 잘됐다.login_required 다음 매개 변수 인코딩, 리디렉션 실패
리디렉션 된 URL은 다음과 같습니다 /login?next=%2Fusers
그것이처럼, 내가 걸쳐 실행 한 예에서 볼 수없는 무언가를 다음 매개 변수를 URL 인코딩 보인다. 로그인 한 후 next
으로 리다이렉트하면 항상 실패하고 색인 페이지로 돌아갑니다. next
은 (는) URL로 인코딩 되었기 때문입니다.
다른 방식으로 진행해야합니까? 나는 Flask 프레임 워크로 들어가기 시작하고 예제를 사용하여 최선의 방법을 모릅니다.
여기 예를 들어 경로입니다 :
login_manager.login_view = 'login'
@app.route('users')
@login_required
def users():
return 'Test'
그리고 내 로그인 경로는 다음과 같습니다 도움에 미리
@app.route('/login')
def login():
error = None
next = request.args.get('next')
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
if authenticate_user(username, password):
user = User.query.filter_by(username=username).first()
if login_user(user):
flash("You have logged in")
session['logged_in'] = True
return redirect(next or url_for('index', error=error))
error = "Login failed"
return render_template('login.html', login=True, next=next, error=error)
감사합니다. 여기
주 내부
2F % 2Fbadsite.com % 2F'이면 로그인 후 사용자를 외부 페이지로 리디렉션합니다. 그러면 다시 로그인하여 비밀번호를 묻습니다. 플러시, 슬프게도, 인증 및 이와 유사한 상용구 코드에 관해서는 정말 부족합니다. – Blender
네, 그걸 확인하면 할 일 목록에도 있고, 지금 막 아기 단계를 진행하고 있습니다. –
실제 문제는 양식 서식 파일의 작업 필드입니다. 리디렉션은 문제없이 인코딩 된 경로를 처리합니다. –