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

Analisis ringkas tentang cara nod melaksanakan log masuk pihak ketiga github

青灯夜游
Lepaskan: 2022-10-26 19:23:17
ke hadapan
1840 orang telah melayarinya

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>
Salin selepas log masuk

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)
Salin selepas log masuk
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();
Salin selepas log masuk

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>
Salin selepas log masuk

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!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan