Rumah  >  Artikel  >  hujung hadapan web  >  Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

青灯夜游
青灯夜游ke hadapan
2022-10-26 19:23:171830semak imbas

Bagaimanakah

nod melaksanakan log masuk pihak ketiga ke github? Artikel berikut akan memperkenalkan kepada anda cara melaksanakan log masuk pihak ketiga ke github menggunakan nodejs. Saya harap ia akan membantu anda!

Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

1 Proses terperinci

Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

Proses terperinci

1. Daftar permohonan

①Log masuk ke github, Tetapan=>Tetapan pembangun=>OAuth Apps=>Daftar aplikasi baharu

Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github
②Isi maklumat permohonan
Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

③Pendaftaran selesai, dapatkan ID Pelanggan dan Rahsia Pelanggan

Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

[Cadangan tutorial berkaitan: tutorial video nodejs]

2 . Bahagian hadapan memulakan permintaan ke halaman keizinan github Jika keizinan berjaya, kod akan diubah hala ke URL panggilan balik bahagian belakang yang dikonfigurasikan

<a href="https://github.com/login/oauth/authorize?client_id={你自己的cilent_id}&redirect_uri=http://localhost:3001/github" class="iconfont ali-icon-github"></a>

3. back-end mendapat kod dan meminta github dengan kod, dapatkan token, dan kemudian muat naik token ke url dan hantar ke hujung hadapan

router.get(&#39;/github&#39;,controller.auth.githubLogin)
const axios = require(&#39;axios&#39;)
const querystring = require(&#39;querystring&#39;)

const config = {
    client_id: "你自己的client_id",
    client_secret: "你自己的client_secret"
}
class AuthController {
    async githubLogin(ctx) {
        const code = ctx.request.query.code
        const params = {
            client_id: config.client_id,
            client_secret: config.client_secret,
            code: code
        }
        let res = await axios.post(&#39;https://github.com/login/oauth/access_token&#39;, params)
        console.log(res)
        const token = querystring.parse(res.data).access_token
        ctx.cookies.set(&#39;token&#39;, token, {
            maxAge: ctx.config.jwt.expire * 1000,
        });
        res = { ...ctx.errCode.SUCCESS, data: { token } };
        ctx.redirect(&#39;http://172.25.78.33:8081/login/success?token=&#39;+token)
    }
}
module.exports = exports = new AuthController();

4. Bahagian hadapan mencipta halaman sementara, menyimpan token pada url dan melompat ke Halaman kejayaan log masuk

halaman sementara akan melompat dengan sangat cepat dan pada dasarnya tidak kelihatan.

<template>
  <h1>登录成功跳转首页</h1>
</template>

<script>
import {setLoginedUser} from "@/http/axios";
export default {
  mounted() {
    setLoginedUser("github", this.$route.query.token);
    this.$message({
      message: "登录成功",
      type: "success",
    });
    this.$router.push("/home");
  },
};
</script>

<style>
</style>

3. Pautan kod

https://github.com/wantao666/nodejs-github

Lebih banyak pengetahuan berkaitan nod, Sila lawati: tutorial nodejs!

Atas ialah kandungan terperinci Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam