iview-admin 1.3 + django 2.0 (二) 用户登录

Iview-admin

logo.vue

<Alert v-show="isshow" type="error" show-icon closable>
    提交错误
    <span slot="desc">{{ e }} </span>
</Alert>

<script>
import Cookies from ‘js-cookie‘;
export default {
    data () {
        return {
            form: {
                username: ‘admin‘,
                password: ‘1qaz.2wsx‘
            },
            isshow: ‘‘,
            e: ‘‘,
            rules: {
                username: [
                    { required: true, message: ‘账号不能为空‘, trigger: ‘blur‘ }
                ],
                password: [
                    { required: true, message: ‘密码不能为空‘, trigger: ‘blur‘ }
                ]
            }
        };
    },
    methods: {
        handleSubmit: function () {
            this.$refs.loginForm.validate((valid) => {
                if (valid) {
                    this.$ajax.post(‘http://127.0.0.1:8000/api-token-auth‘, this.form, {emulateJSON: true})
                        .then((res) => {
                            console.log(res);
                            if (res.statusText !== ‘OK‘) {
                                this.isshow = true;
                                this.e = JSON.stringify(res.data.data);
                            } else {
                                Cookies.set(‘user‘, this.form.username);
                                Cookies.set(‘token‘, res.data.token);
                                this.$store.commit(‘setAvator‘, ‘https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3448484253,3685836170&fm=27&gp=0.jpg‘);
                                if (this.form.username === ‘iview_admin‘) {
                                    Cookies.set(‘access‘, 0);
                                } else {
                                    Cookies.set(‘access‘, 1);
                                }
                                this.$router.push({
                                    name: ‘home_index‘
                                });
                            }
                        });
                }
            });
        }
    }
};
</script>

Django

settings.py

INSTALLED_APPS = [
    ‘rest_framework‘,
    ‘rest_framework.authtoken‘,
    ‘corsheaders‘,
]

# http://www.django-rest-framework.org/api-guide/permissions/#api-reference
# rest-framework
REST_FRAMEWORK = {
    ‘DEFAULT_AUTHENTICATION_CLASSES‘: (
        ‘rest_framework.authentication.BasicAuthentication‘,
        ‘rest_framework.authentication.TokenAuthentication‘,
        ‘rest_framework.authentication.SessionAuthentication‘,

    ),
    ‘DEFAULT_PERMISSION_CLASSES‘: (
        # ‘rest_framework.permissions.AllowAny‘,
        ‘rest_framework.permissions.IsAuthenticated‘,
    ),
    ‘PAGE_SIZE‘:   10
}

CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
    ‘localhost:8080‘,
)

APPEND_SLASH=False

urls.py


from rest_framework.authtoken import views

path(‘api-token-auth‘, views.obtain_auth_token),

api.py

from .serializers import AssetSerializer

from rest_framework import permissions
from rest_framework import generics
from django.views.decorators.csrf import csrf_exempt

from django.utils.deprecation import MiddlewareMixin

class DisableCSRFCheck(MiddlewareMixin):
    def process_request(self, request):
        setattr(request, ‘_dont_enforce_csrf_checks‘, True)

class AssetList(generics.ListCreateAPIView,DisableCSRFCheck):

    queryset = AssetLoginUser.objects.all()
    serializer_class = AssetSerializer
    permission_classes = (permissions.IsAuthenticated,)

class AssetDetail(generics.RetrieveUpdateDestroyAPIView,DisableCSRFCheck):
    queryset = AssetLoginUser.objects.all()
    serializer_class = AssetSerializer
    permission_classes = (permissions.IsAuthenticated,)

原文地址:http://blog.51cto.com/hequan/2128052

时间: 2024-07-31 08:10:27

iview-admin 1.3 + django 2.0 (二) 用户登录的相关文章

django rest_framework vue 实现用户登录

django rest_framework vue 实现用户登录 后端代码就不介绍了,可以参考  django rest_framework 实现用户登录认证 这里介绍一下前端代码,和前后端的联调过程 在components下新建login.vue 文件 <template> <div class="login"> <el-form label-width="80px"> <el-form-item label="

mysql颠覆实战笔记(二)-- 用户登录(一):唯一索引的妙用

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 一.首先我们用上节课的存储过程对两张表压100万数据(各100万). 第一表 user_sys我们使用的是InnoDB模式,小卒自己的插入结果是: 第二张表 user_sys2我们使用的是MyISAM模式,小卒自己的插入结果是: 两个引擎的效率差异明显,所以我们再使用中根据实际情况

python3.0 模拟用户登录,三次错误锁定

# -*- coding:utf-8 -*- #需求模拟用户登录,超过三次错误锁定不允许登陆 count = 0 #realname passwd Real_Username = "test" Real_Password = "test" #读取黑名单的内容 f = open('black_user','r') lock_file = f.read() f.close() Username = input('请输入用户名:') #判断输入用户是否在黑名单内,如果在则

Struts2(二.用户登录模块)

1.编写Javabean /src/myuser/User.java 在strut1中,Javabean需要继承于struts1 api中的ActionForm类.struts2没有此要求 struts2 也没有formbean,通常使用Domain Model的方式向action注入数据 1 package myuser; 2 3 public class User { 4 private int id; 5 private String userName; 6 private String

Django 是如何实现用户登录和登出机制的

settings.py中间件 MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', #... 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', ) 2.Django 中间件机制 request 来

mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 现在我们接着上节课,完成第二个功能,不管成功不成功都记录一个日志. 一.回顾上节课内容,我们在user_log表中添加一个字段 user_id.  在上一节课的存储过程新增一行代码,如下: BEGIN set @gid=0; set @user_name=''; set @_res

博客系统开发_用户登录(二)

用户登录过程实质上是数据库查询的功能 一.页面设计 进入Admin模块下View中新建Login文件夹,新建index.php文件,在index.php中进行用户登录页面设计 代码如下 <!DOCTYPE HTML> <html> <head> <title>管理员登录</title> <script src="/Public/js/jquery-3.2.1.js"></script> <link

关于django用户登录认证中的cookie和session

最近弄django的时候在用户登录这一块遇到了困难,网上的资料也都不完整或者存在缺陷. 写这篇文章的主要目的是对一些刚学django的新手朋友提供一些帮助.前提是你对django中的session和cookie已经有了一定的了解. 我最基本的设想是当用户登陆了网站后,用户访问本网站的其他网页时依旧能识别其身份. 很多教程的方法是在用户的cookie中存储用户名,这种方法当然是非常不安全的. 其实只要我们使用了django中的session,django就会自动在用户的cookie中存储 sess

Django框架(二)---- 常用命令

Django框架(二) 常用命令: 文章中,命令中带有 manage.py 字样的,代表需要进入project/manage.py文件同一级的目录下 1.创建项目: django-admin startproject project-name django-admin:在Windows中,若报错,可用django-admin.py代替 project-name:项目名称,需要符合Python的包命名规范 项目结构:manage.py文件是后续命令操作的关键 2.创建App: python man