Minecraft(我的世界)中文论坛

标题: MadAuth —— 外置登录.安全性能.轻量.密码找回 V3.1!

作者: DarcJC    时间: 2016-2-5 01:06
标题: MadAuth —— 外置登录.安全性能.轻量.密码找回 V3.1!
本帖最后由 z25096708 于 2016-3-13 11:41 编辑

本外置登录系统已经发布在插件百科!点击可以到插件百科查看!排版更好!
介绍
这次我给大家带来了一个新的网页验证!
下载地址已经填入模板了。
这个网页验证使用SQLite + Python + Django环境,无需搭建MySQL环境!
MySQL设置教程已经写出
可以说这个是绝对安全的。(排除Python或Django自身漏洞)
并且如果合理部署的话,可以说是几乎不占用性能的!
由于原先的版本太多XXX,我重写了一个新的验证系统!并且更名为MadAuth

SECRET_KEY = '_k%j6j#m(&-$72_)5j^2=-rnw+iv@fr7j6wr^9hf-f3qw9(ca2'此项必须修改或删除!!!!

环境(灰色为ubuntu)


查毒报告
Python程序哪来的查毒报告?
好吧好吧,你们赢了,查毒报告等等出来就给你们


截图
注意!原先的错误码被我去掉了!

部署


更新记录


反馈 【你的回复&评分是我最大的动力】
你可以加入QQ群:101129344 点击自动入群
不遵守任何协议!请在转载/使用/修改前告知作者即可!


2.3版本稍后放出。支持使用邮箱的账号找回!










测试网址:http://www.galway.cc:8000/
使用版本为v3.1.所有配置维持发布版原样。
使用nginx的话请在配置文件中加入fastcgi_param REMOTE_ADDR $remote_addr;










[groupid=1151]Minecraft插件百科[/groupid]
作者: DarcJC    时间: 2016-2-5 01:11
标题: manage.py部署
本帖最后由 z25096708 于 2016-3-13 11:33 编辑

manage.py部署
这是最为简单的部署方法!
进入根目录,打开命令行(或者ssh使用cd进入根目录)。
使用python manage.py runserver <你需要的端口>
端口那里选填。若不填默认8000。
不要修改manage.py!
若出现python未找到请重新安装。
若出现语法错误请确认python版本为2.7.10


使用之前你先需要确认你的Setting.py中ALLOWED_HOSTS = [你的域名] 已经添加好了

以及,如果需要外网访问需要使用python manage.py runserver 0.0.0.0:你的端口

Linux用的文件需要sudo chmod +x 你的文件.sh    【需要cd到文件所在目录】给予文件可执行权限

Windows用批处理




  1. @echo off
  2. python manage.py runserver 你要的端口
  3. pause
复制代码

SH文件[Linux用]
  1. python manage.py runserver 你要的端口
复制代码

建议使用screen以防止退出登录时进程被系统销毁。
Ubuntu: sudo apt-get install screen
Centos: sudo yun install screen




作者: md_5    时间: 2016-2-5 01:16
在Windows上弄Python+pip还是有点小麻烦的- -||

作者: DarcJC    时间: 2016-2-5 01:18
标题: 食用方法-1
本帖最后由 z25096708 于 2016-2-15 16:24 编辑

食用方法-1
登录请求格式:http://yourip/?p=密码&u=用户名
                或:http://yourip/login/?p=密码&u=用户名


注册请求格式:http://yourip/register/?p=密码&u=用户名&key=你设置的serverKey1
【注册IP不同于登录IP】【这里获取IP是为了防止重复注册。重复注册将会一直显示注册成功!】
【但是若密码不同将会报错!(DEBUG为True的情况下)】


验证请求格式:http://yourip/islogin/?key=你设置的serverKey2&u=用户名&ip=客户端IP

关于秘钥修改的方法在配置教程那里


官方验证插件已经写出来了。

所有操作暂不支持POST方法!【就算支持你们也会用GET方法吧。。。】






登录注册不再要求提交ip地址!!!会自行获取。若无法获取则提示参数不全!





作者: 九尾·    时间: 2016-2-5 01:33
登录验证……那能不能检测是否作弊呢=-=
作者: DarcJC    时间: 2016-2-5 01:43
九尾· 发表于 2016-2-5 01:33
登录验证……那能不能检测是否作弊呢=-=

这个目前若不修改客户端或者在服务器检测的话是基本不可能实现的。
作者: McLarens    时间: 2016-2-5 04:55
比登陆插件还好用?
作者: ーのものー    时间: 2016-2-5 10:50
为什么会不支持 POST。。密码用GET也是有点醉的
作者: 15166549878    时间: 2016-2-9 19:59
怎么看不到图了
作者: DarcJC    时间: 2016-2-13 19:27
标题: 配置
本帖最后由 z25096708 于 2016-2-13 20:07 编辑

若脱机请阅读README文件
秘钥
存放在../../Auth/views.py文件中

如图,我用荧光高亮的地方就是秘钥。第一个是用户注册用的秘钥。第二个是服务器验证用户是否登录的秘钥。
请自行修改该秘钥!


DEBUG
存放在../../MadAuth/setting.py文件中

依然是我用荧光高亮的地方.设置为False即可.    记住一定要大写F!!!!!







作者: DarcJC    时间: 2016-2-13 20:11
标题: 使用Apache部署
本帖最后由 z25096708 于 2016-2-13 20:33 编辑

Linux(Ubunut):
  1. sudo apt-get install apache2 libapache2-mod-wsgi
复制代码

安装apache2与拓展. (Centos的话apt-get变为yum。apache2要变成httpd)
  1. apachectl -v
复制代码

检查apache的版本

  1. sudo vi /etc/apache2/sites-available/MadAuth.conf
复制代码

建新一个站点配置文件

  1. <VirtualHost *:80>

  2.     ServerName www.yourdomain.com

  3.     # ServerAlias otherdomain.com

  4.     ServerAdmin [email protected]

  5.   

  6.     WSGIScriptAlias / /home/MadAuth/MadAuth/wsgi.py

  7.     # WSGIDaemonProcess

  8.     # WSGIProcessGroup ziqiangxuetang.com

  9.   

  10.     <Directory /home/MadAuth/MadAuth/>

  11.     <Files wsgi.py>

  12.         Require all granted

  13.     </Files>

  14.     </Directory>

  15. </VirtualHost>
复制代码
www.yourdomain.com修改为你的域名
otherdomain.com修改为别的域名。不要的话可以注释掉
[email protected]改为你的邮箱(网站管理员邮箱)
如果你的apache版本为2.2.x需要用下面的替代Require all granted

  1. <div>Order deny,allow</div><div>Allow from all</div>
复制代码

然后,我们就要修改wsgi.py文件了。这个文件在下载来的压缩包里有。
把它解压到/home目录下
然后wsgi.py在/home/MadAuth/MadAuth/wsgi.py

  1. import os

  2. from os.path import join,dirname,abspath



  3. PROJECT_DIR = dirname(dirname(abspath(__file__)))

  4. import sys

  5. sys.path.insert(0,PROJECT_DIR)



  6. os.environ["DJANGO_SETTINGS_MODULE"] = "MadAuth.settings"



  7. from django.core.wsgi import get_wsgi_application

  8. application = get_wsgi_application()
复制代码


中间那些是添加的。
然后chmod -Rf 777 /home/MadAuth/*
不论如何,/home/MadAuth目录下的manage.py与db.sqlite3文件必须是777权限!
  1. sudo a2ensite MadAuth 或 sudo a2ensite MadAuth.conf
复制代码






作者: DarcJC    时间: 2016-2-13 20:33
标题: 服务端插件
本帖最后由 z25096708 于 2016-3-12 16:01 编辑

下载
插件下载
配置
咳咳。。。配置文件也就一个config.yml
  1. serverKey2: MineCraft
  2. #  服务器秘钥
  3. url: http://www.xxx.com/islogin
  4. #  请求url
  5. isLoginMessage: 用户已登录.
  6. #  登录的返回信息.一般不用修改.
  7. KickMessage: 对不起,你还没有登录.请使用启动器登录后再入服.
  8. #  玩家被踢出显示的信息.不支持颜色代码

复制代码
按上面的说明修改即可~
支持
插件编译使用spigot-api-1.8.7.jar。按道理来说都兼容。。。因为加入事件似乎万年没改过






作者: DarcJC    时间: 2016-2-13 21:19
标题: 启动器的编写
本帖最后由 z25096708 于 2016-2-14 14:39 编辑

(⊙v⊙)嗯。用E会被吐槽的(⊙v⊙)。那么我们就用C#吧。{:10_492:}
AVA其实嘛。。。用KMCCC不就行了。。。点这
我就告诉你们我发现的一些方法吧。。。。
设置java:
  1. Program.Core.JavaPath =
复制代码

这个接受字符串

直接进服的启动方法:
  1. var result = Program.Core.Launch(new KMCCC.Launcher.LaunchOptions
  2.             {
  3.                 Version = ver,
  4.                 MaxMemory = 1024,
  5.                 Authenticator = new OfflineAuthenticator(textBox2.Text),
  6.                 Mode = LaunchMode.MCLauncher,
  7.                 Server = new ServerInfo { Address = "mc.g*****y.cc", Port = 25565 },
  8.                 MinMemory = 512,
  9.                
  10.                 //Size = new WindowSize { Height = 768, Width = 1280 }
  11.             });
复制代码

【为了不被说是宣传服务器。我把我域名和谐了。。】

启动后退出:
在启动按钮点击事件的最后添加:
  1. Close();
复制代码

.然后就是注册和登录的了。
登录:
  1. <div>HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://youwebsite.com:8000/?u=用户名&p=密码&ip=客户端IP");</div><div>WebResponse response = request.GetResponse();</div><div>Stream resStream = response.GetResponseStream();</div><div>StreamReader sr = new StreamReader(resStream);</div><div>string gettext = sr.ReadLine();</div><div>if (gettext == "登录成功!")</div><div>{</div><div>    MessageBox.Show(gettext);</div><div>    启动游戏写在这里。其他的错误检测代码也是。</div><div>}</div>
复制代码

启动器源码下载(你们得自己修改网址。还有启动器标题== )

KMCCC在这
KMCCC.Pro .zip (104 KB, 下载次数: 42)
自己改后缀为dll








作者: DarcJC    时间: 2016-2-13 21:44
标题: 后台
本帖最后由 z25096708 于 2016-2-13 22:28 编辑

这个。。其实是有后台的。。。
http://yourwebsite.com:8000/admin
就行了。。。
默认的用户名和密码:
用户名:admin
密码:mc@123456

请自行登录后台修改用户名和密码。
若不想要后台可以把urls.py文件中的url(r'^admin/', admin.site.urls),用#注释掉


作者: DarcJC    时间: 2016-2-14 14:12
标题: 邮件系统
本帖最后由 z25096708 于 2016-2-14 14:31 编辑

支持版本:v2.2及以上

=配置=
配置文件是/MadAuth/setting.py
拉倒最下面,你们可以看见# Email Setting
  1. #Email Setting

  2. EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'  #不用改

  3. EMAIL_USE_TLS = True  # 是否使用HTTPS [True or False]

  4. EMAIL_HOST = 'smtp.ym.163.com'  # smtp服务器

  5. EMAIL_PORT = 994  # smtp端口

  6. EMAIL_HOST_USER = '[email protected]'  # 登录服务器的用户名. such as mcdarc<span id="kM0.6876477607960371">@163.com</span>

  7. EMAIL_HOST_PASSWORD = 'xxxx'  # 登录服务器的密码

  8. DEFAULT_FROM_EMAIL = 'xxx <[email protected]>'  # 默认发送邮件用的名称。
复制代码

恩没错,就是这些。如果要发送邮件的话,你首先得把这里搞定!

借用这张图片。
如果FROM_EMAIL是'tuweizhong <[email protected]>' ,他们收到的效果就类似这个。
当然,不止这里要配置,/Auth/views.py也要
找到这一句:
  1. send_mails("XXX服务器——注册成功", "感谢注册XXX服务器!您的用户名为: %s , 您的密码为: %s , 注册IP已记录, 请不要重复注册!", "xxx <[email protected]>",
  2.                    email) % username, password
复制代码


自己修改。。。%s别弄没了就好。。



=提交玩家邮箱=
只要在注册的GET提交里加入一个参数就好。
http://yourwebsite.com:8000/register/?email=玩家邮箱&u=玩家名&p=密码&k=秘钥
如此即可





作者: matts8008    时间: 2016-2-21 22:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: DarcJC    时间: 2016-3-12 14:59
标题: 使用MySQL
本帖最后由 z25096708 于 2016-3-12 15:07 编辑

大家一定希望这个系统可以支持MySQL吧~
虽然他是一直支持的,但是我并没有写出教程。。。
这里说一下


在MadAuth目录下的setting.py文件中,会有这样一段
  1. # Database
  2. # https://docs.djangoproject.com/en/1.9/ref/settings/#databases

  3. DATABASES = {
  4.     'default': {
  5.         'ENGINE': 'django.db.backends.sqlite3',
  6.         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
  7.     }
  8. }
复制代码

这是默认的数据库.

我们要将其改为
  1. # Database
  2. # https://docs.djangoproject.com/en/1.9/ref/settings/#databases

  3. DATABASES = {
  4.     'default': {
  5.         'ENGINE': 'django.db.backends.mysql',
  6.         'NAME': '', #数据库名
  7.         'USER': 'root',
  8.         'PASSWORD': '',
  9.         'HOST': '',
  10.         'PORT': '3306',
  11.     }
  12. }
复制代码
不过在这之前请先使用pip install mysqldb安装模块
然后就好了.
不对!我们还要setup他!
  1. python manage.py makemigrations

  2. python manage.py migrate
复制代码

在manage.py的目录下打开命令行,输入上面的命令即可


作者: Fantasea_    时间: 2016-3-12 15:10
前来领锭,恭喜楼主。
作者: DarcJC    时间: 2016-3-12 15:23
标题: 找回密码
本帖最后由 z25096708 于 2016-3-12 15:31 编辑

同样的,找回密码也使用get方式。
请求找回密码邮件:http://yoursite/findacc/?u=用户名&e=邮箱
如果没有找到匹配的用户名及邮箱,那么会返回未匹配到用户名与邮箱
若成功则会返回邮件已发送
若未提交足够参数则返回参数错误

请求修改密码: http://yoursite/findback/?u=用户名&p=新的密码&c=验证码(通常为八位数字)
成功则返回密码修改成功

当然你也可以禁用这个功能。在urls.py中使用#注释掉
  1. url(r'^findacc/', views.findacc),
  2. url(r'^findback/', views.findback),
复制代码

即可



作者: 824421229    时间: 2016-5-22 15:10
面板的我自觉点击X=.=
作者: MycraftServer    时间: 2016-5-28 21:24
请问楼主,插件那个下载链接挂了,能不能发给我,打算入坑
作者: tallmoon    时间: 2016-6-10 08:13
楼主下载地址不行了
作者: 7628226    时间: 2016-6-10 17:14
好用!!!!!!
作者: 翼LOVE·小爱    时间: 2016-6-30 21:21
请问楼主 能推出支持sponge的插件吗?QwQ
作者: DarcJC    时间: 2016-6-30 21:54
翼LOVE·小爱 发表于 2016-6-30 21:21
请问楼主 能推出支持sponge的插件吗?QwQ

谢谢支持,不过已弃坑
作者: 神~阿尔法    时间: 2016-7-1 16:58
这个是正版登陆用的?
作者: Ynglife    时间: 2016-7-2 23:04
好东西,就是对外接口会麻烦