pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<i id='jg21V'><tr id='jg21V'><dt id='jg21V'><q id='jg21V'><span id='jg21V'><b id='jg21V'><form id='jg21V'><ins id='jg21V'></ins><ul id='jg21V'></ul><sub id='jg21V'></sub></form><legend id='jg21V'></legend><bdo id='jg21V'><pre id='jg21V'><center id='jg21V'></center></pre></bdo></b><th id='jg21V'></th></span></q></dt></tr></i><div class="plyysfo" id='jg21V'><tfoot id='jg21V'></tfoot><dl id='jg21V'><fieldset id='jg21V'></fieldset></dl></div>

<tfoot id='jg21V'></tfoot>
    • <bdo id='jg21V'></bdo><ul id='jg21V'></ul>
  • <legend id='jg21V'><style id='jg21V'><dir id='jg21V'><q id='jg21V'></q></dir></style></legend>

    <small id='jg21V'></small><noframes id='jg21V'>

        用于服務(wù)應(yīng)用程序的 Google oAuth 2.0(JWT 令牌請求

        Google oAuth 2.0 (JWT token request) for Service Application(用于服務(wù)應(yīng)用程序的 Google oAuth 2.0(JWT 令牌請求))
      1. <i id='6EFpW'><tr id='6EFpW'><dt id='6EFpW'><q id='6EFpW'><span id='6EFpW'><b id='6EFpW'><form id='6EFpW'><ins id='6EFpW'></ins><ul id='6EFpW'></ul><sub id='6EFpW'></sub></form><legend id='6EFpW'></legend><bdo id='6EFpW'><pre id='6EFpW'><center id='6EFpW'></center></pre></bdo></b><th id='6EFpW'></th></span></q></dt></tr></i><div class="jniajtk" id='6EFpW'><tfoot id='6EFpW'></tfoot><dl id='6EFpW'><fieldset id='6EFpW'></fieldset></dl></div>

        <small id='6EFpW'></small><noframes id='6EFpW'>

              <tbody id='6EFpW'></tbody>
                <legend id='6EFpW'><style id='6EFpW'><dir id='6EFpW'><q id='6EFpW'></q></dir></style></legend><tfoot id='6EFpW'></tfoot>

                  <bdo id='6EFpW'></bdo><ul id='6EFpW'></ul>
                  本文介紹了用于服務(wù)應(yīng)用程序的 Google oAuth 2.0(JWT 令牌請求)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  限時送ChatGPT賬號..

                  我正在嘗試為此處描述的服務(wù)帳戶實施 Google oAuth 2:https://developer.google.com/accounts/docs/OAuth2ServiceAccount 在 UnityScript(或 C# - 沒關(guān)系,因為它們都使用相同的 Mono .NET 類).

                  I'm trying to implement Google oAuth 2 for service accounts described here: https://developers.google.com/accounts/docs/OAuth2ServiceAccount on UnityScript (or C# - that doesn't matter because they both use the same Mono .NET classes).

                  我在這里找到了類似的主題:Is there a JSON Web Token (JWT) example in C#?web-token-jwt-example-in-c 但我還是沒有成功.

                  I've found similar topic here: Is there a JSON Web Token (JWT) example in C#? web-token-jwt-example-in-c but I still don't have a success.

                  首先,我已經(jīng)生成了標(biāo)題和聲明集(就像在谷歌文檔中一樣)

                  Fist of all, I have generated header and claimset (that are just like in google documentation)

                  var header: String = GetJWTHeader();
                  var claimset: String = GetJWTClaimSet();
                  

                  結(jié)果是(為清楚起見,用新行分隔):

                  The result is (separated with new lines for clarity):

                  {"alg":"RS256","typ":"JWT"}

                  {"alg":"RS256","typ":"JWT"}

                  {"iss":"425466719070-1dg2rebp0a8fn9l02k9ntr6u5o4a8lp2.apps.googleusercontent.com",

                  {"iss":"425466719070-1dg2rebp0a8fn9l02k9ntr6u5o4a8lp2.apps.googleusercontent.com",

                  "范圍":"https://www.googleapis.com/auth/prediction",

                  "aud":"https://accounts.google.com/o/oauth2/令牌",

                  "exp":1340222315,

                  "exp":1340222315,

                  "iat":1340218715}

                  "iat":1340218715}

                  Base-64 編碼方式:

                  Base-64 encoding methods:

                  public static function Base64Encode(b: byte[]): String {
                      var s: String = Convert.ToBase64String(b);
                      s = s.Replace("+", "-");
                      s = s.Replace("/", "_");
                      s = s.Split("="[0])[0]; // Remove any trailing '='s
                      return s;
                  }
                  
                  public static function Base64Encode(s: String): String {    
                      return Base64Encode(Encoding.UTF8.GetBytes(s));
                  }
                  

                  那我要簽名了.

                  var to_sign: byte[] = 
                       Encoding.UTF8.GetBytes(Base64Encode(header) + "." + Base64Encode(claimset));
                  var cert: X509Certificate2 = 
                       new X509Certificate2(google_pvt_key.ToArray(), "notasecret");
                  var rsa: RSACryptoServiceProvider = cert.PrivateKey;
                  var sgn: String = Base64Encode(rsa.SignData(to_sign, "SHA256"));
                  
                  var jwt: String = Base64Encode(header) + "." + Base64Encode(claimset) + 
                                       "." + sgn;
                  

                  然后形成請求:

                  var url: String = "https://accounts.google.com/o/oauth2/token";
                  var form: WWWForm = new WWWForm();
                  form.AddField("grant_type", "assertion");
                  form.AddField("assertion_type", "http://oauth.net/grant_type/jwt/1.0/bearer");
                  form.AddField("assertion", jwt);
                  var headers: Hashtable = form.headers;
                  headers["Content-Type"] = "application/x-www-form-urlencoded";
                  
                  var www: WWW = new WWW(url, form.data, headers);
                  

                  我得到的只是錯誤 400:錯誤請求".

                  編碼后的數(shù)據(jù)看起來像(為清楚起見添加了換行符):

                  The encoded data looks like (line breaks added for clarity):

                  eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.

                  eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.

                  eyJpc3MiOiI0MjU0NjY3MTkwNzAtMWRnMnJlYnAwYThmbjlsMDJrOW50cjZ1NW80YThscDIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTM0MDIyMjMxNSwiaWF0IjoxMzQwMjE4NzE1fQ.

                  eyJpc3MiOiI0MjU0NjY3MTkwNzAtMWRnMnJlYnAwYThmbjlsMDJrOW50cjZ1NW80YThscDIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTM0MDIyMjMxNSwiaWF0IjoxMzQwMjE4NzE1fQ.

                  lIFg7-Og_BcC5qpICLt7USwGIHUOz-vV4ADNq0AWhuRtsvFrbZn5mxk4n9r5qU66q4reTVVAtuW06DeGsdcBMNgEdIMvN6VuYQybs64p9mqrfECBYxO1FWHbUG-2On1IpowybEsRRUjZfp0jFuEY7S

                  lIFg7-Og_BcC5qpICLt7USwGIHUOz-vV4ADNq0AWhuRtsvFrbZn5mxk4n9r5qU66q4reTVVAtuW06DeGsdcBMNgEdIMvN6VuYQybs64p9mqrfECBYxO1FWHbUG-2On1IpowybEsRRUjZfp0jFuEY7SLE3XRaXan0k5zmejcvLQo

                  我花了兩天時間試圖找出問題所在,但我看不到.

                  I've spent two days trying to figure out what is wrong but I can't see.

                  另外,我找不到任何合適的文檔和示例.

                  Also, I couldn't find any suitable documentation and examples.

                  我只是想收到一個令牌.

                  I'm trying just to recieve a token.

                  1. 我是否以正確的方式簽署字節(jié)?
                  2. 聲明集中的范圍"參數(shù)應(yīng)該是什么樣的?我試過https://www.googleapis.com/auth/devstorage.readonly"和https://www.googleapis.com/auth/prediction".
                  3. iss"參數(shù)應(yīng)該等于什么?客戶 ID 或電子郵件地址?(都試過了)
                  4. 有什么方法可以找出我的錯誤?
                  5. 是否有任何用于服務(wù)應(yīng)用程序的 C# 庫(不適用于已安裝的應(yīng)用程序或客戶端登錄)?

                  我快瘋了......它必須工作,但它沒有......:-/

                  I'm getting crazy... It has to work, but it doesn't... :-/

                  推薦答案

                  解決方案是在請求代碼中所有斜杠都必須反斜杠

                  The solution was that in request code all slashes have to be backslashed

                  錯誤:

                  "scope":"https://www.googleapis.com/auth/prediction",
                  "aud":"https://accounts.google.com/o/oauth2/token",
                  

                  正確:

                  "scope":"https:\/\/www.googleapis.com\/auth\/prediction",
                  "aud":"https:\/\/accounts.google.com\/o\/oauth2\/token",
                  

                  這篇關(guān)于用于服務(wù)應(yīng)用程序的 Google oAuth 2.0(JWT 令牌請求)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  What are good algorithms for vehicle license plate detection?(車牌檢測有哪些好的算法?)
                  onClick event for Image in Unity(Unity中圖像的onClick事件)
                  Running Total C#(運行總 C#)
                  Deleting a directory when clicked on a hyperlink with JAvascript.ASP.NET C#(單擊帶有 JAvascript.ASP.NET C# 的超鏈接時刪除目錄)
                  asp.net listview highlight row on click(asp.net listview 在單擊時突出顯示行)
                  Calling A Button OnClick from a function(從函數(shù)調(diào)用按鈕 OnClick)
                  1. <tfoot id='TRib8'></tfoot>
                      <tbody id='TRib8'></tbody>
                    • <legend id='TRib8'><style id='TRib8'><dir id='TRib8'><q id='TRib8'></q></dir></style></legend>

                      • <i id='TRib8'><tr id='TRib8'><dt id='TRib8'><q id='TRib8'><span id='TRib8'><b id='TRib8'><form id='TRib8'><ins id='TRib8'></ins><ul id='TRib8'></ul><sub id='TRib8'></sub></form><legend id='TRib8'></legend><bdo id='TRib8'><pre id='TRib8'><center id='TRib8'></center></pre></bdo></b><th id='TRib8'></th></span></q></dt></tr></i><div class="8ypdbh7" id='TRib8'><tfoot id='TRib8'></tfoot><dl id='TRib8'><fieldset id='TRib8'></fieldset></dl></div>

                          <small id='TRib8'></small><noframes id='TRib8'>

                            <bdo id='TRib8'></bdo><ul id='TRib8'></ul>
                          • 主站蜘蛛池模板: 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 环球电气之家-中国专业电气电子产品行业服务网站! | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 美国查特CHART MVE液氮罐_查特杜瓦瓶_制造全球品质液氮罐 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 全自动五线打端沾锡机,全自动裁线剥皮双头沾锡机,全自动尼龙扎带机-东莞市海文能机械设备有限公司 | 办公室家具_板式办公家具定制厂家-FMARTS福玛仕办公家具 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 天品互联-北京APP开发公司-小程序开发制作-软件开发 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 耐压仪-高压耐压仪|徐吉电气| 天坛家具官网 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 申江储气罐厂家,储气罐批发价格,储气罐规格-上海申江压力容器有限公司(厂) | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 小型单室真空包装机,食品单室真空包装机-百科 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 标准光源箱|对色灯箱|色差仪|光泽度仪|涂层测厚仪_HRC大品牌生产厂家 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 河南凯邦机械制造有限公司| LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 |