Skip to content

उपयोगकर्ता

उपयोगकर्ता मॉड्यूल वर्तमान में लॉग इन किए गए खिलाड़ी की जानकारी और टोकन प्राप्त करने की कार्यक्षमता प्रदान करता है। यदि गेम को सभी सुविधाओं का उपयोग करने के लिए लॉगिन की आवश्यकता नहीं है, तो इस मॉड्यूल का उपयोग करने की आवश्यकता नहीं है। अन्यथा, संबंधित कार्यक्षमता को लागू करने के लिए इस मॉड्यूल के इंटरफेस को कॉल करना होगा।

JOGOS_SDK परिचय पृष्ठ और आपके गेम इंजन से संबंधित भाग को पढ़ने के बाद, आप निम्नलिखित तरीके से संबंधित कार्यक्षमताओं का उपयोग कर सकते हैं:

javascript
window.JOGOS_SDK.user;

वर्तमान उपयोगकर्ता जानकारी प्राप्त करें

आप निम्न विधि का उपयोग करके वर्तमान खिलाड़ी की जानकारी प्राप्त कर सकते हैं:

javascript
try {
  const user = await window.JOGOS_SDK.user.getUser();
  console.log('उपयोगकर्ता जानकारी प्राप्त करने का परिणाम', user);
} catch (err) {
  // अपवाद संभालें
  console.error(err);
}

यदि वर्तमान खिलाड़ी पंजीकृत या लॉग इन नहीं है, तो सिस्टम स्वचालित रूप से लॉगिन/पंजीकरण संवाद बॉक्स खोलेगा और उपयोगकर्ता से पंजीकरण या लॉगिन करने का अनुरोध करेगा। अन्यथा, 401 अनधिकृत, कृपया फिर से लॉगिन करें अपवाद वापस आएगा।

यदि खिलाड़ी का खाता फ्रीज या निरस्त कर दिया गया है, तो संबंधित अपवाद जानकारी भी वापस आएगी।

सफलतापूर्वक वापस आए खिलाड़ी ऑब्जेक्ट की संरचना निम्नलिखित है:

typescript
// उपयोगकर्ता जानकारी
export interface UserInfo {
  // उपयोगकर्ता आईडी
  userId: string;
  // उपयोगकर्ता नाम
  username: string;
  // प्रोफाइल चित्र URL
  profilePictureUrl: string;
  // गेम आईडी
  gameId: number;
}

JOGOS_SDK उपयोगकर्ता नाम 6-20 वर्णों का होना चाहिए और इसमें अक्षर, संख्याएं, डॉट्स और अंडरस्कोर शामिल हो सकते हैं।

ध्यान दें: एकल खाते में कई पात्रों वाले गेम के लिए सूचना

JOGOS_SDK का UserId खिलाड़ी खाते के साथ एक-से-एक मेल खाता है। यदि आपका गेम कई गेम पात्र बना सकता है या कई सर्वरों के बीच पात्र स्विच कर सकता है, तो आपके सर्वर को इस तर्क को संभालना चाहिए ताकि खिलाड़ी के कई पात्र खो न जाएं या स्विच न हो पाएं।

उपयोगकर्ता टोकन प्राप्त करें (आपके गेम सर्वर द्वारा एकीकृत करने की आवश्यकता है)

उपयोगकर्ता टोकन में वर्तमान में लॉग इन किए गए खिलाड़ी से संबंधित जानकारी होती है। आपको इसे आवश्यकतानुसार अपने सर्वर पर भेजना चाहिए और इसे सत्यापित/डिकोड करके संबंधित जानकारी निकालनी चाहिए, जो उपयोगकर्ता खातों को जोड़ने के लिए बहुत उपयोगी है।

आप निम्न विधि का उपयोग करके उपयोगकर्ता टोकन प्राप्त कर सकते हैं:

javascript
try {
  const token = await window.JOGOS_SDK.user.getUserToken();
  console.log('टोकन प्राप्त करने का परिणाम', token);
} catch (err) {
  // अपवाद संभालें
  console.error(err);
}

टोकन का जीवनकाल 1 घंटा है। हम अनुशंसा करते हैं कि आप टोकन को स्टोर न करें और हमेशा आवश्यकता पड़ने पर इस विधि को कॉल करें।

यदि वर्तमान खिलाड़ी पंजीकृत या लॉग इन नहीं है, तो सिस्टम स्वचालित रूप से लॉगिन/पंजीकरण संवाद बॉक्स खोलेगा। अन्यथा, 401 अनधिकृत, कृपया फिर से लॉगिन करें अपवाद वापस आएगा।

यदि खिलाड़ी का खाता फ्रीज या निरस्त कर दिया गया है, तो संबंधित अपवाद जानकारी भी वापस आएगी।

वापस आए टोकन को jwt.io पर डिकोड और परीक्षण किया जा सकता है।

सफलतापूर्वक वापस आए टोकन जानकारी में निम्नलिखित डेटा शामिल हैं:

json
{
  "jti": "1899405772252258304",
  "sub": "{\"profilePictureUrl\":\"a33bf366e34d48e984a094fc923d7b06.png\",\"gameId\":\"1\",\"profileDefaultAvatar\":\"default-avatar.png\",\"userId\":\"88E1B72FED537C6943C85C28F639BE0B\",\"username\":\"55895999999999999999\"}",
  "iss": "com:jogos:sdk",
  "iat": 1741688600,
  "exp": 1745288600
}
क्लाइंट पर टोकन को डिक्रिप्ट न करें
सुरक्षा कारणों से क्लाइंट साइड पर उपयोगकर्ता टोकन को डिक्रिप्ट न करने का ध्यान रखें।

जब आपको सर्वर का उपयोग करके अनुरोधों को प्रमाणित करने की आवश्यकता हो, तो आपको टोकन को अपने सर्वर पर भेजना चाहिए और फिर टोकन को डिकोड और सत्यापित करना चाहिए। आप इस उपयोगकर्ता टोकन सार्वजनिक कुंजी का उपयोग करके टोकन को सत्यापित कर सकते हैं। हम अनुशंसा करते हैं कि टोकन को सत्यापित करते समय हर बार कुंजी प्राप्त करें, क्योंकि यह बदल सकती है।

यहां TypeScript और सार्वजनिक कुंजी का उपयोग करके टोकन को डिकोड और सत्यापित करने का एक उदाहरण दिया गया है:

typescript
import * as jwt from 'jsonwebtoken';

export interface CrazyTokenPayload {
  userId: string;
  username: string;
  gameId: string;
  profilePictureUrl: string;
}

export const decodeUserToken = async (token: string): Promise<CrazyTokenPayload> => {
  const publickKey = `...`; // https://www.jogos.com/sdk/public-key.txt से प्राप्त करें
  const payload = jwt.verify(token, key, { algorithms: ['RS256'] });

  return payload as CrazyTokenPayload;
};

स्थानीय परीक्षण

स्थानीय परीक्षण के दौरान उपयोगकर्ता मॉड्यूल से संबंधित इंटरफेस केवल नकली डेटा वापस करते हैं।