HTML 파일 하나로 Firebase Github 인증
HTML
index.html
<!DOCTYPE html>
<body>
<p id="message"><!-- hello, *** --></p>
<button id="signin">signin</button>
<button id="signout">signout</button>
<!-- 依存 -->
<script src="https://www.gstatic.com/firebasejs/4.6.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.6.0/firebase-auth.js"></script>
<!-- メイン処理 -->
<script>
document.addEventListener('DOMContentLoaded', () => {
const config = {
apiKey: '<api-key>',
authDomain: '<project-name>.firebaseapp.com'
};
firebase.initializeApp(config);
const provider = new firebase.auth.GithubAuthProvider();
/**
* `firebase.auth().signInWithRedirect`から戻ってきた時に
* 問題なければ`then`で`user`や`accessToken`が渡ってくる
*/
(async () => {
try {
const {user, credential} = await firebase.auth().getRedirectResult();
/* 何か... */
} catch (err) {
/* エラー時の処理 */
}
})();
/**
* ログインユーザーが変わったら発火
*/
firebase.auth().onAuthStateChanged(user => {
if (user) {
document.getElementById('message').innerHTML = `hello, ${user.displayName}`;
/**
* ログイン中なのでログアウトできるように
*/
document.getElementById('signout').addEventListener('click', async () => {
try {
await firebase.auth().signOut();
} catch (_) {
/* エラー時の処理 */
}
});
} else {
document.getElementById('message').innerText = '';
/**
* ログインまだなので、クリックでログインできるように
*/
document.getElementById('signin').addEventListener('click', () => {
firebase.auth().signInWithRedirect(provider);
});
}
});
});
</script>
</body>
Gif
보충하다
의존하다
인증만 사용하기 때문에 파일 크기를 줄이기 위해 단독으로 읽지만 Firebase가 제공하는 모든 기능을 사용하고 싶다면
<script src="https://www.gstatic.com/firebasejs/*.*.*/firebase.js"></script>
그럴 수도 있어.이것은<script src="https://www.gstatic.com/firebasejs/*.*.*/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/*.*.*/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/*.*.*/firebase-database.js"></script>
<script src="https://www.gstatic.com/firebasejs/*.*.*/firebase-messaging.js"></script>
에서 설명한 대로 해당 매개변수의 값을 수정합니다.주처리
Firebase 기능을 사용하려면 먼저
firebase.initializeApp(config)
를 사용해야 합니다.(그렇지 않으면firebase.auth()
같은 오류가 발생합니다.API 키 확인
톱니바퀴에서 항목 설정에 게재됩니다.
"OAuth Apps" 를 Github으로 만들겠습니다.
new firebase.auth.GithubAuthProvider()
가 필요합니다.등록 후 나타나는 Client ID 및 Client Secret 를 Github의 Auth 설정 양식으로 복사합니다.
콜백을 Github로 복사하십시오.
로그인 여부 확인
firebase.auth().onAuthStateChanged(...)
그러면 사용자가 로그인하면 그 사용자 정보가 전송되고 없으면 null
전송되기 때문에 이것으로 판단할 수 있다.
Reference
이 문제에 관하여(HTML 파일 하나로 Firebase Github 인증), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nju33/items/d99963d12886ef9aecc9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)