欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity&Springboot實(shí)現(xiàn)本地登陸驗(yàn)證

 更新時(shí)間:2021年07月26日 08:40:25   作者:大可iii  
本文主要介紹了Unity&Springboot服務(wù)器/本地登陸驗(yàn)證,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Springboot使用IDEA編譯器

IDEA上實(shí)現(xiàn)登錄驗(yàn)證

因?yàn)檫@里只能返回網(wǎng)頁,但是我們需要返回登陸是否成功的數(shù)據(jù)所以下面還需要寫一個(gè)請(qǐng)求方法。
如果登陸失敗則將session域中的id刪除,這樣在unity判斷是否登錄成功時(shí)會(huì)直接按請(qǐng)求錯(cuò)誤抓取

//登錄操作
    @RequestMapping("/login")
    public String login(HttpServletRequest request, @RequestParam("userType") String userType, Map<String, Object> map,HttpSession session) {

        session.setAttribute("id",request.getParameter("id"));
        String id = session.getAttribute("id").toString();
        String password = request.getParameter("password");

        //如果是管理員登錄則查詢管理員信息表
        if(userType.equals("0")){
            Administrators administrator = administratorsService.login(id, password);
            if(administrator != null){
                System.out.println("登陸成功");
                return "redirect:/ScheduleInfo";
            }else {
                map.put("msg","賬號(hào)或密碼錯(cuò)誤");
                //如果登陸失敗則將session域中的id刪除,這樣在unity判斷是否登錄成功時(shí)會(huì)直接按請(qǐng)求錯(cuò)誤抓取
                session.removeAttribute("id");
                return "login";
            }
        }else {      //如果是普通用戶登錄則查找普通用戶表
            Employees employee = employeesService.login(id, password);
            if(employee != null){
                if (employeesService.findJobById(id).getJob().equals("巡檢人員")){
                    System.out.println("登陸成功");
                    return "redirect:/xInfo";
                }else {
                    System.out.println("登陸成功");
                    return "redirect:/wInfo";
                }
            }else {
                map.put("msg","賬號(hào)或密碼錯(cuò)誤");
                session.removeAttribute("id");
                return "login";
            }
        }
    }

返回登錄是否成功和登陸用戶的id信息

這里使用 @ResponseBody注解,使返回的是數(shù)據(jù)而不是網(wǎng)頁

@RequestMapping("/getUserInfo")
    @ResponseBody
    public String getUserInfo(HttpSession session){
        System.out.println("收到unity登錄請(qǐng)求");
        //因?yàn)榈顷懯∫院髎ession域中的id會(huì)被刪除,所以判斷為null則登錄失敗
        if(session.getAttribute("id") != null){
            String id = session.getAttribute("id").toString();
            System.out.println("登陸成功");
            return id ;
        }
        else {
            System.out.println("登陸失敗");
            return null;
        }
    }

Unity端的請(qǐng)求

一個(gè)簡單的登陸注冊(cè)界面

在這里插入圖片描述

在這里插入圖片描述

上腳本,看注釋

using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using UnityEngine.Networking;

public class HttpHelper : MonoBehaviour
{
	//發(fā)出登錄請(qǐng)求
    private string postUrl = "http://47.xx.75.xx:8080/login";//如果是本地運(yùn)行則將前面的47.96.75.29換成localhost
    //獲得登錄是否成功的數(shù)據(jù),也就是運(yùn)行上面第二個(gè)代碼的內(nèi)瓤
    private string postUrl2 = "http://47.xx.75.xx:8080/getUserInfo";
    public GameObject[] uis;
    public GameObject backLoginObj;
    public Text massage;
    public Text countText;
    public Text passwordText;
    private const string userType = "userType";
    private const string userName = "id";
    private const string password = "password";

    public void loginTest()
    {
    //這個(gè)方法和登錄按鈕綁定,用于觸發(fā)異步方法Post
        StartCoroutine("Post");
    }

    [System.Obsolete]
    IEnumerator Post()
    {
    //發(fā)送登錄表單,每個(gè)人不一樣,根據(jù)自己需要的表單參數(shù)來,一般就是賬號(hào)密碼,這里的userType就是管理員和員工的分類,0是管理員,1是員工。
        WWWForm form = new WWWForm();
        form.AddField(userType, "0");
        form.AddField(userName, countText.text);
        form.AddField(password, passwordText.text);
		
		//這里發(fā)出了登錄請(qǐng)求
		//利用UnityWebRequest通過請(qǐng)求路徑這個(gè)和postman的操作類似,將表單發(fā)送出去
        UnityWebRequest request = UnityWebRequest.Post(postUrl, form);
        yield return request.SendWebRequest();
        if (request.isHttpError || request.isNetworkError)
        {
            Debug.LogError(request.error);
        }
		
		//這里獲取了登錄是否成功的數(shù)據(jù)
        UnityWebRequest request2 = UnityWebRequest.Get(postUrl2);
        yield return request2.SendWebRequest();
        //如果登陸失敗的Session域中的id是空的,所以會(huì)報(bào)錯(cuò),也就是判斷登陸是否成功的依據(jù)。
        if (request2.isHttpError || request2.isNetworkError)
        {
            massage.text = "登陸失敗,賬號(hào)或密碼錯(cuò)誤";
        }
        else
        {
        //反之如果登錄成功則獲得返回的數(shù)據(jù),這里就是用戶的id
            string receiveContent = request2.downloadHandler.text;
		//這是個(gè)普通的ui操作,我的構(gòu)想是如果登錄成功則將這些ui隱藏只顯示massage和一個(gè)返回鍵
            foreach (GameObject ui in uis)
            {
                ui.SetActive(false);
            }
            massage.gameObject.SetActive(true);
            backLoginObj.SetActive(true);
			
			//如果返回的數(shù)據(jù)和用戶輸入時(shí)的賬號(hào)一樣時(shí)則判斷登陸成功
            if (receiveContent == countText.text)
            {
                massage.text = "登陸成功,歡迎管理員" + receiveContent;
            }
            else//反之登陸失敗
            {
                massage.text = "登陸失敗,賬號(hào)或密碼錯(cuò)誤";
            }
        }
        StopCoroutine("Post");
    }
    public void backLogin()
    {
        SceneManager.LoadScene("SampleScene");
    }
}

最后的運(yùn)行結(jié)果

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于Unity&Springboot服務(wù)器/本地登陸驗(yàn)證的文章就介紹到這了,更多相關(guān)Unity&Springboot服務(wù)器/本地登陸驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring boot AOP通過XML配置文件聲明的方法

    Spring boot AOP通過XML配置文件聲明的方法

    這篇文章主要介紹了Spring boot AOP通過XML配置文件聲明,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • 關(guān)于Java中XML Namespace 命名空間問題

    關(guān)于Java中XML Namespace 命名空間問題

    這篇文章主要介紹了Java中XML Namespace 命名空間,XML命名空間是由國際化資源標(biāo)識(shí)符 (IRI) 標(biāo)識(shí)的 XML 元素和屬性集合,該集合通常稱作 XML“詞匯”,對(duì)XML Namespace 命名空間相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-08-08
  • ?Spring?中?Bean?的生命周期詳解

    ?Spring?中?Bean?的生命周期詳解

    這篇文章主要介紹了Spring中Bean的生命周期詳解,Java中的公共類稱之為Bean或Java?Bean,而Spring中的Bean指的是將對(duì)象的生命周期
    2022-09-09
  • SpringBoot使用@Async注解可能會(huì)遇到的8大坑點(diǎn)匯總

    SpringBoot使用@Async注解可能會(huì)遇到的8大坑點(diǎn)匯總

    SpringBoot中,@Async注解可以實(shí)現(xiàn)異步線程調(diào)用,用法簡單,體驗(yàn)舒適,但是你一定碰到過異步調(diào)用不生效的情況,今天,我就列出90%的人都可能會(huì)遇到的8大坑點(diǎn),需要的朋友可以參考下
    2023-09-09
  • JAVA三種異常處理機(jī)制的具體使用

    JAVA三種異常處理機(jī)制的具體使用

    異常是程序在編譯或執(zhí)行的過程中可能出現(xiàn)的問題,本文主要介紹了JAVA三種異常處理機(jī)制的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Spring Data JPA實(shí)現(xiàn)動(dòng)態(tài)條件與范圍查詢實(shí)例代碼

    Spring Data JPA實(shí)現(xiàn)動(dòng)態(tài)條件與范圍查詢實(shí)例代碼

    本篇文章主要介紹了Spring Data JPA實(shí)現(xiàn)動(dòng)態(tài)條件與范圍查詢實(shí)例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-06-06
  • 淺析非對(duì)稱加密在接口參數(shù)中的實(shí)現(xiàn)

    淺析非對(duì)稱加密在接口參數(shù)中的實(shí)現(xiàn)

    接口層做數(shù)據(jù)加密應(yīng)該算是老生常談的一件事了,業(yè)界用的比較多的,不外乎是對(duì)稱加密,非對(duì)稱加密以及兩者的結(jié)合。本文就來聊聊非對(duì)稱加密在接口參數(shù)中的實(shí)現(xiàn),希望對(duì)大家有所幫助
    2023-02-02
  • 解析分別用遞歸與循環(huán)的方式求斐波那契數(shù)列的實(shí)現(xiàn)方法

    解析分別用遞歸與循環(huán)的方式求斐波那契數(shù)列的實(shí)現(xiàn)方法

    本篇文章是對(duì)分別用遞歸與循環(huán)的方式求斐波那契數(shù)列的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • IDEA部署jeesite3完美運(yùn)行教程詳解

    IDEA部署jeesite3完美運(yùn)行教程詳解

    這篇文章主要介紹了IDEA部署jeesite3完美運(yùn)行教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • tio-boot框架整合ehcache實(shí)現(xiàn)過程示例

    tio-boot框架整合ehcache實(shí)現(xiàn)過程示例

    這篇文章主要為大家介紹了tio-boot框架整合ehcache實(shí)現(xiàn)過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評(píng)論