当前位置: 首页 > news >正文

wap网站推荐百度怎么做网页

wap网站推荐,百度怎么做网页,如何查看网站的空间大小,程伟网络营销一.OAuth2.0协议流程分析 OAuth 2.0 是一种用于授权的开放标准#xff0c;可以让用户授权第三方应用程序访问他们存储在另一个服务提供商上的资源#xff0c;例如图片、文本等。下面是 OAuth 2.0 协议的流程#xff1a; 第三方应用程序向认证服务器请求授权。认证服务器验…一.OAuth2.0协议流程分析 OAuth 2.0 是一种用于授权的开放标准可以让用户授权第三方应用程序访问他们存储在另一个服务提供商上的资源例如图片、文本等。下面是 OAuth 2.0 协议的流程 第三方应用程序向认证服务器请求授权。认证服务器验证用户身份并生成一个访问令牌。第三方应用程序使用访问令牌向资源服务器发出请求。资源服务器验证令牌并根据其有效性向第三方应用程序返回所需资源。 具体实现过程如下 第三方应用程序向认证服务器发送包含以下参数的请求client_id客户端 ID、redirect_uri重定向 URI和 response_typecode响应类型为代码。这个步骤称为“获取授权码”。用户被要求登录并批准第三方应用程序访问它存储在认证服务器上的资源。用户同意后认证服务器将重定向到指定的 redirect_uri 并附带一个授权码。第三方应用程序使用收到的授权码以及之前发送给认证服务器的相同参数来请求一个访问令牌。这个步骤称为“交换令牌”。认证服务器检查该授权码是否有效并使用该信息生成和返回一个访问令牌。第三方应用程序使用访问令牌向资源服务器发出请求。该请求应该包含一个名为 Authorization 的标头其中的值为 Bearer access_token其中 access_token 是第 4 步中收到的访问令牌。资源服务器检查此标头以验证访问令牌并在其有效性得到确认后返回所需资源。 这就是 OAuth 2.0 协议的流程可以帮助第三方应用程序安全地访问用户存储在其他服务提供商上的资源。 二授权码、隐藏式、密码式、客户端凭证流程分析以及应用场景 OAuth2.0 定义了四种授权方式即授权码Authorization Code、隐藏式Implicit、密码式Resource Owner Password Credentials和客户端凭证Client Credentials。 授权码模式Authorization Code Grant 流程客户端将用户导向认证服务器用户提供登录信息进行身份验证后认证服务器将重定向到回调 URL并返回一个授权码。客户端通过该授权码与客户端 ID 和密钥等信息向认证服务器请求访问令牌。应用场景适用于需要从资源所有者那里获取权限的场景。 隐藏式模式Implicit Grant 流程与授权码模式类似但没有授权码这一步骤而是直接返回访问令牌。应用场景适用于需要快速实现、无需刷新令牌的公共客户端应用程序。 密码式模式Resource Owner Password Credentials Grant 流程用户向客户端提供用户名和密码并使用这些凭据向认证服务器请求访问令牌。应用场景适用于受信任的应用程序或高度安全的环境中需要自动化身份验证并对其进行完全控制的情况。 客户端凭证模式Client Credentials Grant 流程客户端使用自己的凭据直接向认证服务器请求访问令牌。应用场景适用于客户端需要直接访问资源服务器而不涉及用户的情况。 以上四种授权方式各有其应用场景开发者在选择时应根据实际需求进行合理选择。 三授权码详细流程分析以及restful api详解 Golang 实现 OAuth2.0 授权码模式的流程 客户端向授权服务器发送请求包含客户端标识符client_id、重定向 URIredirect_uri和作用域范围scope等参数授权服务器验证客户端标识符和重定向 URI 是否匹配并提示用户进行身份验证用户输入用户名和密码进行身份验证授权服务器生成一个授权码并将其重定向回客户端提供的重定向 URI客户端收到授权码后使用客户端标识符、客户端密钥、授权码等参数向 token 端点发送请求以获取访问令牌。 Restful API 是一种基于 HTTP 协议设计 Web 服务接口的架构风格。它是面向资源的通过 HTTP 动词实现对资源的操作。常见的 HTTP 动词有 GET、POST、PUT、PATCH 和 DELETE。 在 Golang 中实现 Restful API 需要用到 net/http 包通过 http.ListenAndServe 函数开启服务监听指定端口。定义路由规则并实现具体业务逻辑即可。 例如下面这个简单的示例代码 package mainimport (encoding/jsonlognet/http )type User struct {ID int json:idName string json:name }var users []Userfunc getUsers(w http.ResponseWriter, r *http.Request) {w.Header().Set(Content-Type, application/json)json.NewEncoder(w).Encode(users) }func addUser(w http.ResponseWriter, r *http.Request) {w.Header().Set(Content-Type, application/json)var user User_ json.NewDecoder(r.Body).Decode(user)users append(users, user)json.NewEncoder(w).Encode(user) }func main() {users []User{{ID: 1, Name: Alice},{ID: 2, Name: Bob},{ID: 3, Name: Charlie},}http.HandleFunc(/users, getUsers).Methods(GET)http.HandleFunc(/users, addUser).Methods(POST)log.Fatal(http.ListenAndServe(:8080, nil)) } 以上示例代码实现了获取用户列表和新增用户的功能使用 JSON 格式进行数据交互。 四go OAuth2.0第三方登录应用 下面是基于 Golang 实现 OAuth2.0 第三方登录应用的简单示例。 首先需要引入 golang.org/x/oauth2 包和相关第三方提供商的包。例如使用 Google 作为 OAuth2.0 提供商则需要引入 golang.org/x/oauth2/google 包。 接着在代码中配置 OAuth2.0 客户端并设置回调 URL。回调 URL 是授权服务器授权后重定向回本应用的 URL。同时定义处理回调请求的 Handler 函数并在其中实现获取用户信息等业务逻辑。 最后开启 HTTP 服务监听指定端口将客户端请求转发到对应 Handler 处理即可。 package mainimport (contextencoding/jsonfmtlognet/httpgolang.org/x/oauth2golang.org/x/oauth2/google )var oauthConfig oauth2.Config{ClientID: your-client-id,ClientSecret: your-client-secret,RedirectURL: http://localhost:8080/callback,Scopes: []string{https://www.googleapis.com/auth/userinfo.email,},Endpoint: google.Endpoint, }func handleMain(w http.ResponseWriter, r *http.Request) {url : oauthConfig.AuthCodeURL(state)http.Redirect(w, r, url, http.StatusTemporaryRedirect) }func handleCallback(w http.ResponseWriter, r *http.Request) {code : r.FormValue(code)token, err : oauthConfig.Exchange(context.Background(), code)if err ! nil {http.Error(w, err.Error(), http.StatusInternalServerError)return}resp, err : http.Get(fmt.Sprintf(https://www.googleapis.com/oauth2/v2/userinfo?access_token%s, token.AccessToken))if err ! nil {http.Error(w, err.Error(), http.StatusInternalServerError)return}defer resp.Body.Close()var user struct {Email string json:email}err json.NewDecoder(resp.Body).Decode(user)if err ! nil {http.Error(w, err.Error(), http.StatusInternalServerError)return}fmt.Fprintf(w, Hello %s!, user.Email) }func main() {http.HandleFunc(/, handleMain)http.HandleFunc(/callback, handleCallback)log.Fatal(http.ListenAndServe(:8080, nil)) } 以上示例代码使用 Google 作为 OAuth2.0 提供商实现了获取用户邮箱信息的功能。其他第三方提供商的实现方式类似只需要修改配置和请求 URL 即可。
http://wiki.neutronadmin.com/news/137866/

相关文章:

  • 网站迁移后 后台进不去简单网站建设方案策划
  • 深圳积分商城网站制作怎样做类似淘宝的网站
  • 深圳建站软件红酒首页网页设计素材
  • 制作网站的软件有那个免费我的世界做头像的网站
  • 网站开发计入什么会计科目网络运营招聘
  • 机械技术支持 东莞网站建设制作网站和制作网页的分别
  • 定制公司网站百度指数人群画像哪里查询
  • 建服务网站需要多少钱遵义软件制作平台
  • 旅游信息网站开发背景陕西网站建设优化建站
  • 北京市建设厅门户网站wordpress回复邮件
  • 画品展现手机网站android wap网站
  • 建设通网站上的业绩能否有用wordpress钩子自定义钩子
  • 下载建设银行官方网站下载免费发布信息
  • 百度收录好的网站排名专业开发软件的公司
  • 大连坐做网站公司品牌宣传片策划公司
  • 页游网站网页设计作品集展示
  • 小店网站制作wordpress 云
  • 东莞网站关键词郑州最新消息今天
  • 白鹭引擎做h5网站正规广东网络推广公司
  • 公司网站建设费用怎么记账微信公众平台登录界面
  • 网站建设和维护的教程在线设计 网站源码
  • 东莞房地产网站建设盐城建设网站
  • 营口建设信息网站wordpress图片域名
  • 响应式网站高度如何计算网上购物网站网站建设分析
  • 管理网站模板下载免费百度指数在线查询小程序
  • 标识标牌网站怎么做ppt模板大全app
  • 唯品会 一家专做特卖的网站网页制作作业源代码
  • 哈尔滨做网站找哪家好安徽网络推广和优化
  • 购物网站底部设计微信平台推广方法
  • 免费大型网站廉洁文化建设网站