重现步骤
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo apt-add-repository "deb https://pkg.jenkins.io/debian-stable binary/"
sudo apt install jenkins
Run Code Online (Sandbox Code Playgroud)控制台日志
gaspar@jenkins:~$ sudo apt install jenkins
...
Setting up default-jre-headless (2:1.9-62ubuntu2) ...
Setting up jenkins (2.107.2) ...
Job for jenkins.service failed because the control process exited with error code.
See "systemctl status jenkins.service" and "journalctl -xe" for details.
invoke-rc.d: initscript jenkins, action "start" failed.
? jenkins.service - LSB: Start Jenkins at boot time
Loaded: loaded (/etc/init.d/jenkins; …Run Code Online (Sandbox Code Playgroud)我正在使用 django social_auth 进行用户识别,并且在用户首次登录时效果很好。但是,如果访问令牌过期或通过 url 直接打开页面,用户将在 google oauth 后重定向到默认页面 ('/')。google oauth 登录后我应该怎么做才能获得原始页面?
这是我的settings.py:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_extensions',
'bootstrap3',
'djangobower',
'social_auth',
)
AUTHENTICATION_BACKENDS = (
'social_auth.backends.google.GoogleOAuth2Backend',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/'
GOOGLE_OAUTH2_CLIENT_ID = 'CLIENT_ID'
GOOGLE_OAUTH2_CLIENT_SECRET = 'CLIENT_SECRET'
SOCIAL_AUTH_USER_MODEL = 'auth.User'
SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'
GOOGLE_WHITE_LISTED_DOMAINS = ['google.com']
SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {
'access_type': 'offline',
'approval_prompt': 'select_account+consent',
'prompt' : 'select_account+consent'
}
Run Code Online (Sandbox Code Playgroud)
登录.html:
{% load bootstrap3 %}
{% load static %}
<link media="all" href="{% static 'bootstrap/dist/css/bootstrap.min.css' %}" type="text/css" rel="stylesheet"/>
<script type="text/javascript" src='{% …Run Code Online (Sandbox Code Playgroud)