簡體   English   中英

使用 Ruby on Rails API 和 React 登錄 Google

[英]Login with Google, using a Ruby on Rails API and React

我目前正在嘗試使用 google 實現登錄作為一個選項,以便用戶更輕松地登錄和創建用戶。

我有一個使用 devise 登錄的 Rails API,以及一個使用 React 向 Rails 5 API 發出請求的前端。

我不確定我是否必須在后端或前端進行所有這些登錄,我最大的問題是在使用 google 登錄時創建用戶,因為沒有密碼我無法創建用戶。

我從來沒有創建過這種登錄系統,所以我不確定它是如何工作的,我相信我必須在后端實現所有功能,使用 google oauth gem,但我想知道是否有人有如何做的提示。

我應該只使用反應組件嗎? 只有 Rails 寶石? 或者兩者都是正確答案?

謝謝。

我可以給你方向。

首先,您必須弄清楚您將在 OAuth 提供程序中使用哪個授權流程。

有四種方式,我只列出最常用的兩種方式。

  1. 代碼授予流程(在網站、omniauth-google 或使用這種方式的類似 gem 中使用)

  2. 隱式授權流程(本機應用程序,這意味着您必須在前端執行 OAuth 流程)

如果你要實現 API 服務器,你應該考慮第二種方式。

因為 API server 應該是無狀態的,所以第一種方式需要 session 來保存 OAuth 流的狀態。

此外, devise不是實現 API 服務器的好主意,您應該考慮jwt或基於令牌的身份驗證。

雖然,你可以使軌API內使用會話存儲deviseomniauth-series

如果您想在前端完成所有 OAuth,請使用第二種方式。

或者您可以簡單地將按鈕鏈接添加到您的反應組件中的 OAuth 回調 url,然后您的 Web 服務器將處理您的 OAuth 流程(這是第一種方式)。

在考慮了你的情況后,我建議你使用第一種方式。

因為你可以在互聯網上找到很多關於deviseomniauth-series資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM