使用 JavaScript 进行访客登录
无论项目规模大小,最常见的需求是authentication
。少数情况下,只需要 ,无需向用户索要凭证,而只需登录用户进行正确的身份验证即可。
解决此问题的最佳方法是使用 Firebase 的匿名身份验证。
注意:这是我的 YouTube 视频,演示了同样的内容
注意::我建议您使用yarn
,但这完全取决于您。
步骤 1.创建 React 应用
$ npx create-react-app fbase
第 2 步:添加 Firebase
$ yarn add firebase
它将反映在package.json
文件中。
{
"name": "fbase",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.16.1",
"@testing-library/react": "^12.1.2",
"@testing-library/user-event": "^13.5.0",
"firebase": "^9.6.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "5.0.0",
"web-vitals": "^2.1.2"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
步骤 3.创建firebaseConfig.json
文件并粘贴 Firebase 配置
{
"apiKey": "AIzygy_MxOabWfYylrZcr_A0qikixlwIynwvgE",
"authDomain": "learn-00000.firebaseapp.com",
"projectId": "learn-00000",
"storageBucket": "learn-00000.appspot.com",
"messagingSenderId": "708886134942",
"appId": "1:708886134942:web:e9162122e8cd6741ca7b8f",
"measurementId": "G-M5TXS27GDQ"
}
步骤4.写app.js
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import firebaseConfig from "./firebaseConfig.json";
initializeApp(firebaseConfig);
const auth = getAuth();
export default function App() {
return ();
}
现在,创建 Flexbox
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import firebaseConfig from "./firebaseConfig.json";
initializeApp(firebaseConfig);
const auth = getAuth();
export default function App() {
return (
<div
style={{
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<h1>Anonymous Login</h1>
</div>
);
}
添加 HTML 表单
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import firebaseConfig from "./firebaseConfig.json";
initializeApp(firebaseConfig);
const auth = getAuth();
export default function App() {
return (
<div
style={{
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<h1>Anonymous Login</h1>
<form onSubmit={handleSubmit}>
<button type="submit">Login</button>
</form>
</div>
);
}
定义onSubmit
方法。
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import firebaseConfig from "./firebaseConfig.json";
initializeApp(firebaseConfig);
const auth = getAuth();
export default function App() {
const handleSubmit = (e) => {
e.preventDefault();
// ...
};
return (
<div
style={{
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<h1>Anonymous Login</h1>
<form onSubmit={handleSubmit}>
<button type="submit">Login</button>
</form>
</div>
);
}
进口signInAnonymously
import { getAuth, signInAnonymously } from "firebase/auth";
现在,扩展handleSubmit
import { initializeApp } from "firebase/app";
import { getAuth, signInAnonymously } from "firebase/auth";
import firebaseConfig from "./firebaseConfig.json";
initializeApp(firebaseConfig);
const auth = getAuth();
export default function App() {
const handleSubmit = (e) => {
e.preventDefault();
signInAnonymously(auth)
.then()
.catch();
};
return (
<div
style={{
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<h1>Anonymous Login</h1>
<form onSubmit={handleSubmit}>
<button type="submit">Login</button>
</form>
</div>
);
}
写,回复
import { initializeApp } from "firebase/app";
import { getAuth, signInAnonymously } from "firebase/auth";
import firebaseConfig from "./firebaseConfig.json";
initializeApp(firebaseConfig);
const auth = getAuth();
export default function App() {
const handleSubmit = (e) => {
e.preventDefault();
signInAnonymously(auth)
.then((res) => {
console.log("[Sign In] DONE", res.user.uid);
})
.catch((error) => {
console.log(error.message);
});
};
return (
<div
style={{
display: "flex",
flexDirection: "column",
justifyContent: "center",
alignItems: "center",
}}
>
<h1>Anonymous Login</h1>
<form onSubmit={handleSubmit}>
<button type="submit">Login</button>
</form>
</div>
);
}
步骤 5.运行服务器
$ yarn start
单击Login
按钮并打开开发者控制台。
您Applications > IndexedDB
将看到已保存的用户凭据。
步骤 6.查看 Firebase 控制台
Without Email and Password
太棒了!您刚刚学习了如何设置用于登录的API 端点JavaScript
。
希望你们喜欢这个快速教程。如果喜欢,别忘了点赞哦❤️
另外,请帮助我在我的YouTube 频道上获得1k 名订阅者🤩 。
编码愉快!😃💻
文章来源:https://dev.to/rajeshj3/login-without-email-and-password-javascript-38le