screen_rotation
Copied to Clipboard
<!DOCTYPE html> <html lang="en"> <head> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div id="app"> <h2>Vue Js Create Random Token</h2> <button @click="generateToken">Generate Token</button> <p v-if="token">Random Token: {{ token }}</p> </div> <script type="module"> const app = new Vue({ el: "#app", data() { return { token: '', }; }, methods: { generateRandomToken(length) { const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; const charactersLength = characters.length; let token = ''; if (typeof window !== 'undefined' && window.crypto) { const randomValues = new Uint32Array(length); window.crypto.getRandomValues(randomValues); for (let i = 0; i < length; i++) { token += characters.charAt(randomValues[i] % charactersLength); } } else { // Fallback to Math.random() for environments without window.crypto support for (let i = 0; i < length; i++) { const randomIndex = Math.floor(Math.random() * charactersLength); token += characters.charAt(randomIndex); } } return token; }, generateToken() { const randomToken = this.generateRandomToken(10); this.token = randomToken; }, }, }); </script> <style scoped> #app { display: flex; flex-direction: column; align-items: center; margin-top: 50px; } h2 { font-size: 24px; margin-bottom: 20px; } button { padding: 10px 20px; background-color: #4CAF50; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 16px; transition: background-color 0.3s ease; } button:hover { background-color: #45a049; } </style> </body> </html>