iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何实现仅用于开发的登录
  • 437
分享到

如何实现仅用于开发的登录

2023-06-16 02:06:22 437人浏览 安东尼
摘要

本篇内容主要讲解“如何实现仅用于开发的登录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现仅用于开发的登录”吧!首先在 main() 函数中添加此路由。router.H

本篇内容主要讲解“如何实现仅用于开发的登录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现仅用于开发的登录”吧!

首先在 main() 函数中添加此路由。

router.HandleFunc("POST", "/api/login", requireJSON(login))

登录

此函数处理对 /api/login 的 POST 请求,其中 jsON body 只包含用户名,并以 JSON 格式返回通过认证的用户、令牌和过期日期。

func login(w Http.ResponseWriter, r *http.Request) {     if origin.Hostname() != "localhost" {         http.NotFound(w, r)         return     }      var input struct {         Username string `json:"username"`     }     if err := json.NewDecoder(r.Body).Decode(&input); err != nil {         http.Error(w, err.Error(), http.StatusBadRequest)         return     }     defer r.Body.Close()      var user User     if err := db.QueryRowContext(r.Context(), `         SELECT id, avatar_url         FROM users         WHERE username = $1     `, input.Username).Scan(         &user.ID,         &user.AvatarURL,     ); err == sql.ErrNoRows {         http.Error(w, "User not found", http.StatusNotFound)         return     } else if err != nil {         respondError(w, fmt.Errorf("could not query user: %v", err))         return     }      user.Username = input.Username      exp := time.Now().Add(JwtLifetime)     token, err := issueToken(user.ID, exp)     if err != nil {         respondError(w, fmt.Errorf("could not create token: %v", err))         return     }      respond(w, map[string]interface{}{         "authUser":  user,         "token":     token,         "expiresAt": exp,     }, http.StatusOK) }

首先,它检查我们是否在本地主机上,或者响应为 404 Not Found。它解码主体跳过验证,因为这只是为了开发。然后在数据库中查询给定用户名的用户,如果没有,则返回 404 NOT Found。然后,它使用用户 ID 作为主题发布一个新的 JSON WEB 令牌。

func issueToken(subject string, exp time.Time) (string, error) {     token, err := jwtSigner.Encode(jwt.Claims{         Subject:    subject,         Expiration: json.Number(strconv.FORMatInt(exp.Unix(), 10)),     })     if err != nil {         return "", err     }     return string(token), nil }

该函数执行的操作与 前文 相同。我只是将其移过来以重用代码。

创建令牌后,它将使用用户、令牌和到期日期进行响应。

种子用户

现在,你可以将要操作的用户添加到数据库中。

INSERT INTO users (id, username) VALUES     (1, 'john'),     (2, 'jane');

你可以将其保存到文件中,并通过管道将其传送到 Cockroach CLI。

cat seed_users.sql | cockroach sql --insecure -d messenger

就是这样。一旦将代码部署到生产环境并使用自己的域后,该登录功能将不可用。

到此,相信大家对“如何实现仅用于开发的登录”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何实现仅用于开发的登录

本文链接: https://www.lsjlt.com/news/282216.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现仅用于开发的登录
    本篇内容主要讲解“如何实现仅用于开发的登录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现仅用于开发的登录”吧!首先在 main() 函数中添加此路由。router.H...
    99+
    2023-06-16
  • 微信小程序开发中如何实现登录
    这篇文章给大家分享的是有关微信小程序开发中如何实现登录的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信小程序开放平台先从我们的小程序代码开始简单的说一下我们小程序的js代码登录...
    99+
    2024-04-02
  • 基于layui如何实现登录页面
    本篇内容主要讲解“基于layui如何实现登录页面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于layui如何实现登录页面”吧!首先给看下效果图吧!html、js<!DOCTYPE&nb...
    99+
    2023-06-21
  • 基于Node如何实现单点登录
    本文小编为大家详细介绍“基于Node如何实现单点登录”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于Node如何实现单点登录”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是单点登录随着公司业务的增多,必然...
    99+
    2023-07-04
  • 基于SpringMVC如何实现网页登录拦截
    基于SpringMVC如何实现网页登录拦截,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.简介SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filte...
    99+
    2023-06-22
  • 基于Vue3和elementplus如何实现登录功能
    这篇文章主要介绍了基于Vue3和elementplus如何实现登录功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Vue3和elementplus如何实现登录功能文章都会有所收获,下面我们一起来看看吧。登...
    99+
    2023-07-05
  • 如何基于Session实现短信登录功能
    目录一、基于Session实现登录1.1 业务流程图二、发送短信验证码2.1 发送短信请求方式及参数说明三、登录功能  3.1  短信验证的请求方式及路径3.2  业务层代码实现用户登录3....
    99+
    2024-04-02
  • java如何实现用户登录
    在Java中,可以使用以下步骤来实现用户登录功能:1. 创建一个用户类,包含用户名和密码属性,以及相应的getter和setter方...
    99+
    2023-08-30
    java
  • 如何用JDBC实现验证登录
    这篇文章主要介绍“如何用JDBC实现验证登录”,在日常操作中,相信很多人在如何用JDBC实现验证登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用JDBC实现验证登录”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-02
  • SpringBoot如何实现token登录
    这篇文章主要为大家展示了“SpringBoot如何实现token登录”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot如何实现token登录”这篇文章吧。为什么引入token机制...
    99+
    2023-06-29
  • PHP开发中如何实现微信扫码登录功能的技术指南
    PHP开发中如何实现微信扫码登录功能的技术指南 随着移动互联网的快速发展,微信已经成为了人们日常生活中不可或缺的应用之一。在网站开发中,实现微信扫码登录功能能够方便用户快速登录并增强用...
    99+
    2024-03-04
    微信 php 扫码
  • 如何基于Ajax技术实现无刷新用户登录功能
    这篇文章主要为大家展示了“如何基于Ajax技术实现无刷新用户登录功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何基于Ajax技术实现无刷新用户登录功能”这...
    99+
    2024-04-02
  • 如何用PHP开发微信小程序的登录功能?
    如何用PHP开发微信小程序的登录功能?微信小程序已成为越来越多企业和开发者选择的平台之一。为了让用户能够在小程序中使用个人信息或进行一些需要用户身份验证的操作,开发者需要实现登录功能。本文将介绍如何使用PHP开发微信小程序的登录功能,并提供...
    99+
    2023-10-26
    PHP 微信小程序 登录功能
  • Winform开发框架中怎么实现系统登录
    Winform开发框架中怎么实现系统登录,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在业务系统的操作过程中,有时候,用户需要切换用户进行重新登录,这种情况有时候是因为一个人管...
    99+
    2023-06-17
  • WEB开发中如何确保登录安全
    这篇文章主要介绍了WEB开发中如何确保登录安全,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。安全风险暴力破解!只要网站是暴露在公网的,那么很大概率上会被人盯上,尝试爆破这种简...
    99+
    2023-06-27
  • QT如何实现用户登录注册
    本篇内容主要讲解“QT如何实现用户登录注册”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“QT如何实现用户登录注册”吧!具体代码如下#include "widget.h&quo...
    99+
    2023-07-02
  • 如何用Android Studio实现登录跳转
    前言 这个项目是我很早的时候写的,现在将其发上来供大家参考。可能存在一些不规范的问题,如有不对,欢迎批评指正。首先需要安装配置好Java开发环境,并选择任意一款Android开发工具进行编程,推荐下载安装Android Studio软件进行...
    99+
    2023-10-08
    android studio Java Android开发 登录界面
  • 如何使用JWT实现单点登录
    本篇内容介绍了“如何使用JWT实现单点登录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、故事起源说起 ...
    99+
    2024-04-02
  • Android开发中实现登录微信与分享的方法
    本篇文章给大家分享的是有关Android开发中实现登录微信与分享的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。第一步:申请你的AppID;第二步:依赖dependenci...
    99+
    2023-05-31
    android roi
  • Redis如何实现登录注册
    今天小编给大家分享一下Redis如何实现登录注册的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 引言在传统的项目中,用户...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作