CocosCreator + nodeJs 课程9 测试账号登录

前言: 有时候我们实现微信登录功能的时候,会经历繁琐的过程,例如开发账号的审批,项目的审核等。以上内容已经做过讲解,接下来我们就跳过这些过程,直接进行测试账号开发。

服务端

Api.js文件
在之前课程的Api.js文件中添加测试代码:

app.get('/testLogin/', async function(req, res){
    	//1、获得客户端传递的账号
        //2、判断账号是否注册
        //3、如已注册,就返回 account 等
        
        var account = req.query.account
        if(!account)
        {
            res.send({})
        }

        var playerInfo = await DataBaseManager.instance().findPlayer(account, {account:1, pass:1, openId:1})
        if(playerInfo)
        {
            var hallUrl = ServerBlance.getInstance().getIp("HallService", playerInfo.openId)
            res.send({code:0, account:playerInfo.account, pass:playerInfo.pass, hallUrl:hallUrl})
        }
        else
        {
            //注册
            var headUrl = 'http://i4.cfimg.com/583278/00e2ef22ec67b9b0.jpg'
            var id = await idGenerater.getID()
            var playerInfo = await DataBaseManager.instance().createPlayer(id, account, account, account, 1, headUrl, account, account, 0)
            var hallUrl = ServerBlance.getInstance().getIp("HallService", playerInfo.openId)
            res.send({code:0, account:playerInfo.account, pass:playerInfo.pass, hallUrl:hallUrl})
        }
    })

客户端

Config.js文件: 该文件主要用来配置各种URL。

class Config{

}
注意:以下访问地址中的localhost要替换成需要访问的IP。
Config.weixinLoginUrl = "http://localhost:3000/weixinlogin"
Config.testLoginUrl = "http://localhost:3000/testLogin"
module.exports = Config

login.js文件: 点击“登录”功能,调用此文件的接口。

onLoad () {
        var self = this
        if(!PlatForm.isAnroid() || !PlatForm.isIOS())
        {
            this.testLoginCom.node.active = true
            this.testLoginCom.setLoginEvent(function(account){
                LoginManager.testLogin(account)
            })
        }
 }

LoginManager.js文件

var UnitTools = require('UnitTools')
var Config = require('Config')

class LoginManager
{
	weixinLogin(){

	}

	//调用服务器的测试登录接口,创建或返回一个测试账号登录的结果
	static testLogin(account){
		UnitTools.request(Config.testLoginUrl , {account:account}, function(err, data){
			if(err)
			{
				console.log("ERROR")
				return
			}

			//登录成功之后,连接大厅服务
			
		}, 4000)
	}
}
module.exports = LoginManager

UnitTools.js文件

UnitTools.request = function (url,dataJson,cb,timeOut) 
{
    var dataStr = ""
    var firstEnter = true
    for(var key in dataJson)
    {
        if(!firstEnter)dataStr+="&"
        firstEnter = false
        var value = dataJson[key]
        dataStr+=key
        dataStr+="="
        dataStr+=value
    }

    try {
        var response = false
        setTimeout(function(){
            if(response == false)
            {
                cb(new Error("over time at UnitTools.request()"), null)
            }
        },timeOut)

        var xhr = new XMLHttpRequest()
        xhr.onreadystatechange = function () 
        {
            if (xhr.readyState == 4 && xhr.status >= 200 && xhr.status < 400) 
            {
                response = true
                cb(null, xhr.responseText)
            }
        }

        var finalUrl = dataStr==""?url:url+"?"+dataStr
        finalUrl = encodeURI(finalUrl)
        xhr.open("GET", finalUrl, true)
        xhr.send()
    } 
    catch (e) {
        cb(e, null)
    }
}

登录

以上内容部署好之后,我们启动“课程4”中的数据库,然后运行"Api.js"。
接下来我们输入网址“http://localhost:3000?account=10”,之后就可以在网页上看到正确的返回值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值