最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Springboot使用IDEA編譯器

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

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

//登錄操作
    @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","賬號或密碼錯誤");
                //如果登陸失敗則將session域中的id刪除,這樣在unity判斷是否登錄成功時會直接按請求錯誤抓取
                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","賬號或密碼錯誤");
                session.removeAttribute("id");
                return "login";
            }
        }
    }

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

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

@RequestMapping("/getUserInfo")
    @ResponseBody
    public String getUserInfo(HttpSession session){
        System.out.println("收到unity登錄請求");
        //因為登陸失敗以后session域中的id會被刪除,所以判斷為null則登錄失敗
        if(session.getAttribute("id") != null){
            String id = session.getAttribute("id").toString();
            System.out.println("登陸成功");
            return id ;
        }
        else {
            System.out.println("登陸失敗");
            return null;
        }
    }

Unity端的請求

一個簡單的登陸注冊界面

在這里插入圖片描述

在這里插入圖片描述

上腳本,看注釋

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

public class HttpHelper : MonoBehaviour
{
	//發(fā)出登錄請求
    private string postUrl = "http://47.xx.75.xx:8080/login";//如果是本地運行則將前面的47.96.75.29換成localhost
    //獲得登錄是否成功的數(shù)據(jù),也就是運行上面第二個代碼的內(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()
    {
    //這個方法和登錄按鈕綁定,用于觸發(fā)異步方法Post
        StartCoroutine("Post");
    }

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

最后的運行結(jié)果

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

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

相關(guān)文章

  • 一文搞懂java中類及static關(guān)鍵字執(zhí)行順序

    一文搞懂java中類及static關(guān)鍵字執(zhí)行順序

    這篇文章主要介紹了一文搞懂java中類及static關(guān)鍵字執(zhí)行順序,文章通過類的生命周期展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 淺析Java中XPath和JsonPath以及SpEL的用法與對比

    淺析Java中XPath和JsonPath以及SpEL的用法與對比

    XPath,即XML路徑語言,是一種用于在XML文檔中查找信息的語言,JsonPath是從XPath中發(fā)展而來的,專門用于JSON數(shù)據(jù)格式,本文主要來講講他們的用法與區(qū)別,需要的可以參考下
    2023-11-11
  • MyBatis-Flex 邏輯刪除的用法小結(jié)

    MyBatis-Flex 邏輯刪除的用法小結(jié)

    本文主要介紹了MyBatis-Flex 邏輯刪除的用法小結(jié),主要介紹了@Column注解使用及UpdateChain工具類介紹,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • Spring自帶的校驗框架Validation的使用實例

    Spring自帶的校驗框架Validation的使用實例

    今天小編就為大家分享一篇關(guān)于Spring自帶的校驗框架Validation的使用實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 使用proguard對maven構(gòu)建的springboot項目進行混淆方式

    使用proguard對maven構(gòu)建的springboot項目進行混淆方式

    文章介紹了如何使用ProGuard對Maven構(gòu)建的Spring Boot項目進行混淆,并解決混淆后可能遇到的版本兼容性問題和類名沖突問題,主要步驟包括下載高版本的ProGuard、配置POM文件、添加ProGuard配置文件、修改Spring Boot啟動文件以避免類名沖突
    2024-11-11
  • Kryo序列化及反序列化用法示例

    Kryo序列化及反序列化用法示例

    這篇文章主要介紹了Kryo序列化及反序列化用法示例,小編覺得挺不錯的,這里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • Spring如何使用@Indexed加快啟動速度

    Spring如何使用@Indexed加快啟動速度

    這篇文章主要介紹了Spring如何使用@Indexed加快啟動速度,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • MyBatis常用動態(tài)sql大總結(jié)

    MyBatis常用動態(tài)sql大總結(jié)

    這篇文章主要給大家介紹了關(guān)于MyBatis常用動態(tài)sql的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • ImportBeanDefinitionRegistrar手動控制BeanDefinition創(chuàng)建注冊詳解

    ImportBeanDefinitionRegistrar手動控制BeanDefinition創(chuàng)建注冊詳解

    這篇文章主要為大家介紹了ImportBeanDefinitionRegistrar手動控制BeanDefinition創(chuàng)建注冊詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 使用IDEA搭建Hadoop開發(fā)環(huán)境的操作步驟(Window10為例)

    使用IDEA搭建Hadoop開發(fā)環(huán)境的操作步驟(Window10為例)

    經(jīng)過三次重裝,查閱無數(shù)資料后成功完成hadoop在win10上實現(xiàn)偽分布式集群,以及IDEA開發(fā)環(huán)境的搭建。一步一步跟著本文操作可以避免無數(shù)天坑
    2021-07-07

最新評論

东乌珠穆沁旗| 英德市| 客服| 永兴县| 雷山县| 扬州市| 花莲市| 宝清县| 项城市| 漳平市| 大渡口区| 广宗县| 吉林市| 信阳市| 邵武市| 井冈山市| 新邵县| 东山县| 阜新市| 澄城县| 花莲市| 唐河县| 芮城县| 梁河县| 永善县| 呈贡县| 鹰潭市| 岢岚县| 宜章县| 南皮县| 玛多县| 南岸区| 枣庄市| 吉木萨尔县| 砚山县| 灌南县| 子洲县| 辉县市| 拜城县| 宝山区| 布拖县|