Blazor Wasm Gitee 码云登录

这篇具有很好参考价值的文章主要介绍了Blazor Wasm Gitee 码云登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录:

  1. OpenID 与 OAuth2 基础知识
  2. Blazor wasm Google 登录
  3. Blazor wasm Gitee 码云登录
  4. Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务
  5. Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasm
  6. Blazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端管理组件
  7. Blazor SSR/WASM IDS/OIDC 单点登录授权实例4 - 部署服务端/独立WASM端授权
  8. Blazor SSR/WASM IDS/OIDC 单点登录授权实例5 - Blazor hybird app 端授权
  9. Blazor SSR/WASM IDS/OIDC 单点登录授权实例5 - Winform 端授权

源码

b21_OAuth_Gitee

写在前面

gitee 没有提供 OIDC,只能用 OAuth2, 所以这篇文章其实是半成品. 看看以后有时间再实现补充完整.

1. 参考基础贴建立WASM工程

https://www.cnblogs.com/densen2014/p/17959857

2. 创建码云应用

登录码云, 点击头像,点账号设置, 然后点数据管理下的第三方应用

直达链接为 https://gitee.com/oauth/applications

Blazor Wasm Gitee 码云登录,Blazor,Blazor hybird / MAUI Blazor,wasm,gitee,jquery

点击创建应用

应用回调地址填写等下用到的本机测试地址 https://localhost:5001/authentication/login-callback

权限用默认 user_info

Blazor Wasm Gitee 码云登录,Blazor,Blazor hybird / MAUI Blazor,wasm,gitee,jquery

复制 Client ID, Client Secret 备用

3. 添加码云登录组件

[AuthenticationGitte.razor]

@page "/authenticationgitte/{action}"
@page "/authenticationgitte/{action}/{token}"
@using Microsoft.AspNetCore.Components.WebAssembly.Authentication

<p>@output</p>

@if (Token != null)
{
    <p>Token:</p> <p>@Token</p>
}

@code{

    [Parameter] public string? Action { get; set; }
    [Parameter] public string? Token { get; set; }

    [Inject] public IAccessTokenProvider? TokenProvider { get; set; }
    [Inject] public NavigationManager? Navigation { get; set; }
    [Inject] public HttpClient? HttpClient { get; set; }
    [Inject] public IConfiguration? Config { get; set; }
    [Inject] public AuthenticationStateProvider? AuthenticationStateProvider { get; set; }

    private string? output;

    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            //var ClientId = (string)Config["gitte:ClientId"];
            //var ClientSecret = (string)Config["gitte:ClientSecret"];
            //var RedirectUri = (string)Config["gitte:RedirectUri"];

            var ClientId = "e5cb4a812a87aac306ec91d45d8a9c42e04a699c7dd6788fdf12a55d800c751d";
            var ClientSecret = "e1489dcd5c8d2ceed06b81afb8702548b84a8fa64d36c117af3c711a60800aae";
            var RedirectUri = $"https://localhost:5001/authenticationgitte/login-callback";

            var Authority = $"https://gitee.com/oauth/authorize?client_id={ClientId}&redirect_uri={RedirectUri}&response_type=code";
            var GetToken = $"https://gitee.com/oauth/token?grant_type=authorization_code&client_id={ClientId}&redirect_uri={RedirectUri}&client_secret={ClientSecret}&code=";
            var GetUserInfo = $"https://gitee.com/api/v5/user?access_token=";
            if (Action == "login")
            {

                Navigation!.NavigateTo(Authority);

            }
            else if (Action == "login-callback")
            {
                // 获取Uri对象
                var uri = Navigation!.ToAbsoluteUri(Navigation.Uri);
                // HttpUtility 获取参数值
                var code = System.Web.HttpUtility.ParseQueryString(uri.Query).Get("code");
                var url = $"{GetToken}{code}";
                var result = await HttpClient!.PostAsync(url, null);
                var token = await result.Content.ReadFromJsonAsync<GitteRespone>();
                if (token?.access_token != null)
                {
                    url = $"{GetUserInfo}{token.access_token}";
                    var user = await HttpClient!.GetFromJsonAsync<GitteUserRespone>(url);
                    if (user != null)
                    {
                        output = $"Hello, {user.name}!";
                        Navigation!.NavigateTo($"/authenticationgitte/login-complete/{token?.access_token}");
                    }
                }
            }
            else if (Action == "login-complete")
            {
            }

        }
    }


    private class GitteRespone
    {
        public string? access_token { get; set; }
        public string? token_type { get; set; }
        public int expires_in { get; set; }
        public string? refresh_token { get; set; }
        public string? scope { get; set; }
        public int created_at { get; set; }
    }

    private class GitteUserRespone
    {
        public int id { get; set; }
        public string? login { get; set; }
        public string? name { get; set; }
        public string? avatar_url { get; set; }
        public string? url { get; set; }
        public string? html_url { get; set; }
        public string? remark { get; set; }
        public string? followers_url { get; set; }
        public string? following_url { get; set; }
        public string? gists_url { get; set; }
        public string? starred_url { get; set; }
        public string? subscriptions_url { get; set; }
        public string? organizations_url { get; set; }
        public string? repos_url { get; set; }
        public string? events_url { get; set; }
        public string? received_events_url { get; set; }
        public string? type { get; set; }
        public string? blog { get; set; }
        public string? weibo { get; set; }
        public string? bio { get; set; }
        public int public_repos { get; set; }
        public int public_gists { get; set; }
        public int followers { get; set; }
        public int following { get; set; }
        public int stared { get; set; }
        public int watched { get; set; }
        public DateTime created_at { get; set; }
        public DateTime updated_at { get; set; }
        public string? email { get; set; }
    }


}

4. 添加登录按钮

[Home.razor]

<button class="btn btn-link" @onclick="LoginGitte">码云登录</button>

@code{
    private void LoginGitte()
    {
        Navigation.NavigateTo("authenticationgitte/login");
    }
}

5. 运行工程

Blazor Wasm Gitee 码云登录,Blazor,Blazor hybird / MAUI Blazor,wasm,gitee,jquery

Blazor Wasm Gitee 码云登录,Blazor,Blazor hybird / MAUI Blazor,wasm,gitee,jquery文章来源地址https://www.toymoban.com/news/detail-836209.html

到了这里,关于Blazor Wasm Gitee 码云登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 码云 Gitee + Jenkins 配置教程

    安装jdk 安装maven https://blog.csdn.net/minihuabei/article/details/132151292?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132151292%22%2C%22source%22%3A%22minihuabei%22%7D 前往 Manage Jenkins - Manage Plugins - Available,在 Filter 中搜索 Gitee: 下方可选列表中勾选 Gitee(如列表中不存在

    2024年02月14日
    浏览(30)
  • Git 的基础命令 码云 gitee

        就比如,我们的开发吧,我自己本地分支是dqh,远程分支也是new     //我开始提交代码     //1,git add .     //2,git commit -m\\\'XXX功能\\\'     //3,git pull origin new(你们现在这个版本的开发分支)     //这里就写git pull origin new     //4,git push origin dqh:new(推送到自己的远程分

    2024年02月07日
    浏览(37)
  • VsCode 传送代码到码云Gitee

    1.在插件中下载Git History 不安装也没关系,我是参考的其他博主的。然后就是VScode自带有Git  2.点这个地方。然后等,直到出现这样,往下看 对,我换了一个页面啦 然后点击远程-添加远程仓库。  接着我们进码云里面新建仓库。    把刚刚复制的HTTPS地址输进远程仓库里。像

    2024年01月18日
    浏览(54)
  • ssh安装和Gitee(码云)源码拉取

    安装ssh服务 更新软件源: 安装ssh服务 检查ssh是否安装成功 输出: 启动ssh 服务 注册码云公钥 注册码云账号,步骤略过 Gitee 提供了基于 SSH 协议的 Git 服务,在使用 SSH 协议访问仓库仓库之前,需要先配置好账户 SSH 公钥,在终端通过命令 ssh-keygen 生成 SSH Key -t key 类型 -C 注释

    2024年02月04日
    浏览(40)
  • idea中将代码上传到gitee(码云)超详

    点击新建仓库 第二部,点击创建 这样就算创建好了一个仓库 第三步,把我们的项目上传到gitee上 1、进入本地你想要上传的项目 2、输入自己的gitee的用户名和邮箱 3、可以输入以下命令检查是否正确 4、在项目的空白处右键Git Bash Here ,输入以下命令 5、添加项目目录下所有文

    2024年02月08日
    浏览(48)
  • gitee(码云)如何生成并添加公钥配置用户信息

    一,简介 在使用Gitee的时候,公钥是必须的,无论是克隆还是上传。本文主要介绍如何本地生成和添加公钥到服务器,然后配置自己的用户信息,方便日后拉取与上传代码。 二,步骤介绍 2.1 本地生成公钥 打开git bash,输入:ssh-keygen -t rsa -C “你的邮箱”,然后回车三次。 输

    2024年02月13日
    浏览(36)
  • 【GITEE】码云上传代码文件出现上传错误的问题

    【GITEE】码云上传文件出现上传错误的问题 解决 git push 到码云的时候报错: Powered by GITEE.COM [GNK-6.4] remote: This repository(including wiki) size 1049.73 MB, exceeds 1024.00 MB. remote: Push rejected for repository size exceeds limit. 1. 情况描述 正常GITEE的免费版本,仓库容量只有1G左右,所以仓库上传文件

    2024年02月15日
    浏览(55)
  • gitee(码云)建立新仓库并推送项目代码步骤

    1.下载git工具并安装(推荐使用14-16版本,版本过高可能会导致项目安装依赖失败) 2.安装完成后 3.到码云内注册账号 4.注册完成后新建仓库 5.桌面右击打开git Bash Here 6.git clone 复制某个仓库内克隆下载按钮点一下会有个https地址,将本地与远程仓库建立连接 7.连接成功以后会

    2024年04月22日
    浏览(40)
  • 怎么从码云(gitee)下载项目到IDEA运行

            如果我们直接从码云克隆/下载项目,发现在Idea上运行时是行不通的!怎么办呢?请往下看:  一、在官网下载Git Bash  二、创建一个空文件夹          首先创建一个空文件夹   三、使用git clone url命令下载在文件夹          右击创建的空文件,找到Git Bash He

    2023年04月19日
    浏览(38)
  • Gitee码云仓库操作步骤---忘了就来看看

    有时一段时间不用就会遗忘操作,又得在网上找半天费时,想了想还是自己记录一下找起来方便,下面的是具体到每一步的操作 1.首先进入git官网,新建一个仓库 2.新建仓库选项如下(只输入了仓库名),点击创建,完成仓库创建 3.创建完成以后会跳转进仓库的设置页面,点击初始化rea

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包