zoukankan      html  css  js  c++  java
  • senparc 第三方授权回调,保存授权信息到文件

    [HttpGet]
            public async Task<IActionResult> OpenOAuthCallback(string auth_code, string appletId)
            {
                try
                {
                    #region 使用ComponentContainer
                    //获取OAuth授权结果
                    QueryAuthResult queryAuthResult;
                    try
                    {
                        queryAuthResult = ComponentContainer.GetQueryAuthResult(_senparcWeixinSetting.Component_Appid, auth_code, false);
                    }
                    catch (Exception ex)
                    {
                        throw new Exception("QueryAuthResult:" + ex.Message);
                    }
                    #endregion
                    if (queryAuthResult.authorization_info == null) return Json(queryAuthResult);
                    var dir = Path.Combine(Environment.CurrentDirectory + @"/App_Data/AuthorizerInfo/" + _senparcWeixinSetting.Component_Appid);
                    if (!Directory.Exists(dir))
                    {
                        Directory.CreateDirectory(dir);
                    }
                    var file = Path.Combine(dir, string.Format("{0}.bin", queryAuthResult.authorization_info.authorizer_appid));
                    //记录authorization_info(也可以存入数据库或其他可以持久化的地方)
                    using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate, FileAccess.ReadWrite))
                    {
                        var bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                        bf.Serialize(fs, new RefreshAuthorizerTokenResult { authorizer_access_token = queryAuthResult.authorization_info.authorizer_access_token, expires_in = queryAuthResult.authorization_info.expires_in, authorizer_refresh_token = queryAuthResult.authorization_info.authorizer_refresh_token });
                    }
    
                    //授权成功后,更新客户小程序信息 queryAuthResult.authorization_info.miniprograminf
                    var getAuthorizerInfoResult = AuthorizerContainer.GetAuthorizerInfoResult(_senparcWeixinSetting.Component_Appid, queryAuthResult.authorization_info.authorizer_appid);
                   
                    return Json(queryAuthResult.authorization_info);
                }
                catch (ErrorJsonResultException ex)
                {
                    return Content(ex.Message);
                }
            }
  • 相关阅读:
    Vue Router路由组件传参
    Object.defineProperty()详解
    响应状态码
    ngnix端口转发
    查看端口占用情况
    nginx的查看、启动、停止、重载命令
    nginx的几个默认路径
    pm2的一些常用命令
    为什么要学习HTML?HTML会过时吗?
    48.MySQL数据库使用(二)
  • 原文地址:https://www.cnblogs.com/SmilePastaLi/p/11269509.html
Copyright © 2011-2022 走看看